├── .gitignore
├── LICENSE.md
├── Makefile
├── README.md
├── assets
├── IMG_1.png
├── IMG_2.jpg
└── IMG_3.jpg
├── control
├── layout
├── DEBIAN
│ ├── postinst
│ └── postrm
└── var
│ └── root
│ └── Library
│ └── Preferences
│ └── com.apple.CrashReporter.plist
└── packages
└── daniel.symbolicator_1.0.0_iphoneos-arm.deb
/.gitignore:
--------------------------------------------------------------------------------
1 | .theos
2 | .DS_Store
3 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 daniel
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 | just kidding.
24 |
25 | How would that even play out in court?
26 |
27 | "Your honor, the prosecution asks that bail should be denied, for the Defendant is accused of the most heinous act of property violation."
28 |
29 | "What property violation is the prosecution specifically accusing the defense of?"
30 |
31 | "The very worst of them your honor, he violated my property list."
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | include $(THEOS)/makefiles/common.mk
2 |
3 | NULL_NAME = Symbolicator
4 |
5 | include $(THEOS_MAKE_PATH)/null.mk
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # it's 2025 so I would check out [OSAnalytics](https://github.com/dlevi309/OSAnalytics) instead; Download it from on [PoomSmart's repo](https://poomsmart.github.io)
2 |
3 | # Symbolicator
4 |
5 | This package enables the ability to natively symbolicate all of your crash logs.
6 |
7 | ## Usage
8 |
9 | Install the package and reboot. Done.
10 |
11 | Now all of your crash reports located in the settings app should be symbolicated automatically without any hassle
12 |
13 | ## Side by side example
14 |
15 | https://twitter.com/insan1d/status/1357556364285931520?s=21
16 |
17 | ## No way.
18 |
19 | Yes way.
20 |
21 | ## What? How?
22 |
23 | I was exploring any possible methods to symbolicating iOS crash logs, I felt like there had to be a simpler implementation than the already-existent 3rd party methods, but was slightly doubtful I would find anything of substance, really because far more talented individuals had undoubtedly explored this.
24 |
25 | Although, I got lucky, in a disassembly session I discovered a global domain titled “com.apple.CrashReporter“, and after quickly double checking, nothing with that domain existed within NSUserDefaults or within any particular file on disk.
26 |
27 | 
28 |
29 | The preference value for “DisableLogObfuscation“ was revealed within that disassembly, and after a mass search for any constants containing “Symbolicate“, I was able to find that the key “SymbolicateCrashLogs“ was a compatible fit.
30 |
31 | ### UPDATE:
32 | As June 4, 2021, I was able to uncover a new value "ExtraInfo". Adding this value provides a backtrace for all threads rather than just the first 5.
33 |
34 | The package itself just installs the final property list to iOS‘s global preference directory (/var/mobile/Library/Preferences is the mobile user directory, but I decided to direct the installation path to the root user preference directory /var/root/Library/Preferences. It's proven just as effective and solves an installation issue rather than adding an extra script), but in case you‘d rather just add the plist manually, here is an XML representation of the final file:
35 |
36 | ```xml
37 |
38 |
39 |
40 |
41 | DisableLogObfuscation
42 |
43 | SymbolicateCrashes
44 |
45 | ExtraInfo
46 |
47 |
48 |
49 | ```
50 |
51 | ## I should also note
52 |
53 | Since this package is just moving a propertly list to a specific directory for convenience, there is room to achieve this same result without any extensive system privileges, for this is really a native feature hidden in iOS. For example, if you were to reboot into a non-jailbroken state after installing this package, the effects would still apply. And even further than that, If you were to manually add this preference file to the Global preference directory, you can easily carry this enhanced logging ability throughout different iOS versions / devices (as long as this file is appended to a mobile backup and is applied to said devices)
54 |
55 | ## What to expect
56 |
57 | Until I find out what processes have to be killed for this to take effect, you’re gonna have to reboot your device or run ldrestart, after that, crash logs should be symbolicated. Here is a side-by-side representation of the differences you should expect. I used FLEX to formulate these crash logs, they are both identical attempts to push a view controller that does not exist.
58 |
59 | **Before**
60 | 
61 |
62 | **After**
63 | 
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/assets/IMG_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlevi309/Symbolicator/1c75e46c7c269b238e0d2896a939ce0174202716/assets/IMG_1.png
--------------------------------------------------------------------------------
/assets/IMG_2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlevi309/Symbolicator/1c75e46c7c269b238e0d2896a939ce0174202716/assets/IMG_2.jpg
--------------------------------------------------------------------------------
/assets/IMG_3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlevi309/Symbolicator/1c75e46c7c269b238e0d2896a939ce0174202716/assets/IMG_3.jpg
--------------------------------------------------------------------------------
/control:
--------------------------------------------------------------------------------
1 | Package: daniel.symbolicator
2 | Name: Symbolicator
3 | Section: Development
4 | Architecture: iphoneos-arm
5 | Description: Symbolicate all crash logs natively on iOS through a simple addition to NSUserDefaults
6 | Author: daniel
7 | Maintainer: daniel
8 | Depends: firmware (>= 10.0)
9 | Version: 1.0.0
10 |
--------------------------------------------------------------------------------
/layout/DEBIAN/postinst:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | killall logd || :
4 |
--------------------------------------------------------------------------------
/layout/DEBIAN/postrm:
--------------------------------------------------------------------------------
1 | postinst
--------------------------------------------------------------------------------
/layout/var/root/Library/Preferences/com.apple.CrashReporter.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DisableLogObfuscation
6 |
7 | SymbolicateCrashes
8 |
9 | ExtraInfo
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/packages/daniel.symbolicator_1.0.0_iphoneos-arm.deb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlevi309/Symbolicator/1c75e46c7c269b238e0d2896a939ce0174202716/packages/daniel.symbolicator_1.0.0_iphoneos-arm.deb
--------------------------------------------------------------------------------