ワンクリックで
netlogger-dev
// Expert guide and domain knowledge for developing, maintaining, and debugging the NetLogger jailbreak tweak project. Use this skill whenever the user asks to modify NetLogger, add features, or fix bugs.
// Expert guide and domain knowledge for developing, maintaining, and debugging the NetLogger jailbreak tweak project. Use this skill whenever the user asks to modify NetLogger, add features, or fix bugs.
| name | netlogger-dev |
| description | Expert guide and domain knowledge for developing, maintaining, and debugging the NetLogger jailbreak tweak project. Use this skill whenever the user asks to modify NetLogger, add features, or fix bugs. |
This skill provides essential procedural knowledge and architecture overview for maintaining and developing the NetLogger jailbreak tweak.
NetLogger is an in-process network interceptor (Tweak) for iOS (specifically Dopamine rootless). It intercepts network requests and responses directly within the target application's process.
Core Hooking (Tweak.x):
NSURLSessionConfiguration to inject NLURLProtocol.SSLWrite, SSLRead, send, recv) using MSHookFunction.applyMitmRules, applyMitmRequestRules, applyMitmResponseRules to intercept and manipulate JSON/Headers via a JavaScriptCore Engine or key-path matching.Preference Bundle (netloggerprefs/):
NLBlacklistController, NLMitmRulesController, NLLogDetailViewController) MUST subclass PSViewController (not UIViewController), implement loadView, and avoid manual view initialization in viewDidLoad to prevent doesNotRecognizeSelector: SIGABRT crashes in the Settings app.en.lproj) and Vietnamese (vi.lproj). Strings are managed via Localizable.strings and Root.strings and accessed using the NLLocalizedString macro in NLLocalization.h.Sileo Depiction (docs/depictions/com.minh.netlogger.json):
minVersion must be at least 0.4 to support Screenshots.Always use the custom build script instead of manually running make package.
# Clean, compile (with DEBUG=0 FINALPACKAGE=1), package, and update apt repository hashes (MD5, SHA256)
./update_repo.sh
Git Workflow: After a successful build, always commit the changes and push to the remote repository (GitHub Pages acts as the APT repository).
git add .
git commit -m "feat/fix: Description"
git push
UIViewController directly for screens launched from Root.plist or other preference cells. Always use <Preferences/PSViewController.h>.UIKeyboardWillShowNotification and UIKeyboardWillHideNotification to adjust the tableView.contentInset.[UIColor secondarySystemGroupedBackgroundColor] instead of nil to prevent transparency bugs in grouped tables.UIApplicationDidFinishLaunchingNotification as Scene-based apps (like 1.1.1.1, Locket, iOS 13+) haven't initialized their UIWindowScene yet, causing a crash.UIApplicationDidBecomeActiveNotification or UISceneDidActivateNotification.JSContext to evaluate user-provided JavaScript scripts.body (Object if JSON, String if text).JSContext.exceptionHandler to prevent user-provided scripts from crashing the host app.netloggerprefs/, wrap strings in NLLocalizedString(@"Key", @"Fallback").netloggerprefs/Resources/en.lproj/Localizable.strings and netloggerprefs/Resources/vi.lproj/Localizable.strings.NSLog(@"[NetLogger] ...") for logging in Tweak.x. Use the Console app or oslog to view them.DEBUG = 0 and FINALPACKAGE = 1 are set in the root Makefile before releasing to remove debug symbols and reduce .deb size.