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:

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:

ldid -Sdebugserver.entitlements -M debugserver

Note: There is no space after -S.

The debugserver should work now.

./debugserver 0.0.0.0:1234 --attach=1234