Debugserver on iPhone


Documents on iPhonedev.wiki is outdated.

This article is based on Dopamine2, iOS 16.4.1.

The stock debugserver is now located in /usr/libexec/debugserver , copy to your home directory:

Terminal window
cp /usr/libexec/debugserver /var/jb/var/root

Prepare debugserver.entitlements:

<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
<key>seatbelt-profiles</key>
<array/>
<key>run-unsigned-code</key>
<true/>
<key>get-task-allow</key>
<true/>
<key>task_for_pid-allow</key>
<true/>
<key>platform-application</key>
<true/>
<key>com.apple.private.security.no-container</key>
<true/>
</dict>
</plist>

Sign debugserver:

Terminal window
ldid -Sdebugserver.entitlements -M debugserver

Note: There is no space after -S.

The debugserver should work now.

Terminal window
./debugserver 0.0.0.0:1234 --attach=1234