Skip to content

stealth: probe sqlite + dump preferences in discover importer#13

Merged
Evil0ctal merged 1 commit into
mainfrom
feat/m5e-sqlite-probe
May 6, 2026
Merged

stealth: probe sqlite + dump preferences in discover importer#13
Evil0ctal merged 1 commit into
mainfrom
feat/m5e-sqlite-probe

Conversation

@Evil0ctal
Copy link
Copy Markdown
Owner

what

m5d showed ios 15.8 doesn't use cookie files. /var/mobile/Library/Cookies/
is empty; the storeaccountd state lives in sqlite databases under
/var/mobile/Library/com.apple.itunesstored/ + two small plists under
/var/mobile/Library/Preferences/.

changes

  • path E opens itunesstored2.sqlitedb / itunesstored_private.sqlitedb /
    kvs.sqlitedb read-only via iOS-builtin SQLite3, lists tables +
    columns + row counts
  • path E dumps com.apple.itunesstored.plist + com.apple.appstored.plist
    structure with values redacted (>24 chars -> tail-4 mask)
  • no spm dep — uses Swift's built-in SQLite3 module

test

  • xcodebuild Debug + Release archive both green, lint clean
  • on real device: stealth diagnostics path E now shows the sqlite
    schema + plist structure, telling us where dsid / storefront /
    cookies / token live in the on-disk state

m5d on ios 15.8 confirmed storeaccountd is not using cookie files at all
on this device — /var/mobile/Library/Cookies/ is empty. state lives in
sqlite databases under /var/mobile/Library/com.apple.itunesstored/
plus two small plists under Preferences/.

* path E (discover) now opens itunesstored2/itunesstored_private/kvs
  sqlitedb files read-only, lists tables + columns + row counts so we
  can map the schema for m5f
* path E also dumps the structure of com.apple.itunesstored.plist and
  com.apple.appstored.plist with values redacted (anything > 24 chars
  shows count + tail-4 mask) so token-shaped strings don't leak

uses iOS-builtin SQLite3 module — no SPM dep added.

next iteration uses the schema to extract dsid + storefront + cookies
+ token from the sqlite rows.
@Evil0ctal Evil0ctal merged commit 66236c6 into main May 6, 2026
3 checks passed
@Evil0ctal Evil0ctal deleted the feat/m5e-sqlite-probe branch May 6, 2026 01:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant