Files
AnyPS5/docs/dev/debt/libSceUserService.md
T

88 KiB

libSceUserService technical debt

Unsupported account state

Additional callable exports

  • Additional callable exports - 35 entries present in both version-labelled images are import-resolution declarations only. Neither label independently authenticates retail firmware provenance. None of these NIDs appears in the pinned public 3.20 catalogue for this library. Parameter lists, return types and behavior are unverified; parameterless int declarations are placeholders, not verified ABI contracts. Every entry throws through NotImplemented_nid_no_patch. Unidentified names use literal NID aliases. No runtime functionality is implemented. Data exports require separate layout and ownership analysis. Identified candidate names match their NIDs in the public symbol database or supplemental catalog.
Name NID
sceUserServiceGetPartyChatTranscriptionVoiceType Ebq9pcMYrko
sceUserServiceSetVoiceAgentEnableByButton Jz06XYyyqGE
Unknown -JCFmPNhxY8
Unknown -dkPbHlL9O8
Unknown -o+vKoB+bIw
Unknown 0rgUYD57RHc
Unknown 1b1BuBizZ2Q
Unknown 1fV-P4lyYAM
Unknown 6Qsib4RLbFw
Unknown 6erDJ4-MGCs
Unknown A-wBTL+Cs5A
Unknown BdzmN4JP3JM
Unknown Bx+ESDBWJm4
Unknown Cqt7pJZRKLI
Unknown D5lYX9Wm7PI
Unknown DL6cKVeISqs
Unknown GbRykQBfmM8
Unknown JD766DzZIIU
Unknown L9NSPGwLZTQ
Unknown PBJH7EFon8c
Unknown UKInJ0LzusI
Unknown WGYLbMB95kM
Unknown YZwUXHtKrXI
Unknown fPmaQlxVoqI
Unknown hKzuaakSOLE
Unknown iRkGgbFAhcw
Unknown isbcQWjV-qU
Unknown keFAPHk6pIc
Unknown oF3Ygwz32Bs
Unknown pfgU0SxMMxw
Unknown pr3J39r9ArQ
Unknown shuQwNy79HM
Unknown tPbEIE0wYCM
Unknown u5SR3+a0lTw
Unknown ys8aAGjUads
  • 13.60 inventory exports - the defined function exports below, from the PS5 13.60 export inventory, are import-resolution declarations only. The 12 named entries are not in the pinned symbol database; each name hashes to its NID. The other entries use literal NID aliases. None appears in the pinned public 3.20 catalogue for this library. Parameter lists, return types and behavior are unverified; parameterless int declarations are placeholders, not verified ABI contracts. Every entry throws through NotImplemented_nid_no_patch. No runtime functionality is implemented.
Name NID
sceUserServiceGetNotificationSettings_4 yUJo-ds9Rks
sceUserServiceGetPartyGameIconInstallHistory 2Sr4VoLCSNI
sceUserServiceSetA11yControllerInitialSetupProgress P+pOA+RRvF8
sceUserServiceSetA11yControllerLedBrightness Aspwt4NNVto
sceUserServiceSetAccessibilityKeyremapEnableAston Q89EQaIzT0o
sceUserServiceSetHmd2CinematicAudioRotation 1NGArQcf8aA
sceUserServiceSetHmd2HideCameraImage jNsBCHVryzs
sceUserServiceSetIsPersonalizedHrtfEnabled enesn4WCCAc
sceUserServiceSetNotificationSettings_4 9Azht0PAl5Y
sceUserServiceSetPartyGameIconInstallHistory i9shhWDcEao
sceUserServiceSetProControllerBtAddress aKx9SVQFoXo
sceUserServiceSetUserWithHearingAssist O8g8pltXaSU
Unknown 0VWuaS7yx4Q
Unknown 0X4L-lGkR0U
Unknown 0kfh-kXBoGw
Unknown 1OMFZTrGEOY
Unknown 213TW6eCaV0
Unknown 2lFquavP21M
Unknown 3eALPjo6QXU
Unknown 3f6-jkXQLFk
Unknown 59d4Z516iOk
Unknown 59xv0xdNes0
Unknown 7ZIQ70nCU3c
Unknown 8HyYroq9wLo
Unknown 9jQ101Vehu8
Unknown BxPuER5Yc10
Unknown Ca3vW3flGe4
Unknown DItHYL5cEC4
Unknown DJScQvHT3YY
Unknown Dnwjs7-f2GE
Unknown EN2UKJiRpps
Unknown FPLmWbOSKfU
Unknown FQbXslA0yZM
Unknown FwUItKJJWR4
Unknown GDMZXo8xr9E
Unknown IhQQePmqld0
Unknown J4pLTH8a1mc
Unknown JjxkX1xhsmk
Unknown JuN4qbB2LW8
Unknown MN7x6irI8as
Unknown NfkyXrR6zF0
Unknown OJBuVxGTYWk
Unknown P9V9+1y1ZYA
Unknown PiP-7eI7IPY
Unknown Pmp6wxMYRcI
Unknown QET6KBJeQwY
Unknown QOLeFO68FaE
Unknown QWDb1Gpriqc
Unknown RQgycMlOM8k
Unknown RwBASVJunNM
Unknown SjfUPNYJxmU
Unknown Spe5cSAxIFw
Unknown TFedVAGIeWs
Unknown V4DYvLza+hk
Unknown VYS3iJdpOPM
Unknown WhbS9jlb7To
Unknown Y1nezlvRv5I
Unknown Zh9dupumXA8
Unknown ZvAy-RmIp5U
Unknown eGAd8M8YAn8
Unknown eQBzz8K6DJU
Unknown eocuDBjKlOk
Unknown fckKicGEsqE
Unknown gmtJoK7i8fI
Unknown gtKMfHm4SzI
Unknown gvuNFHPW9D8
Unknown i1NiYr7za48
Unknown iW+LvgfcVX4
Unknown ld0saw1ClfQ
Unknown mH-AzatKOgI
Unknown ozyi9A3JfUs
Unknown qRKreqPOBh8
Unknown rd5nxid3adQ
Unknown t+lVru0bCCM
Unknown vpKwTiaFqCo
Unknown xFuJQZLWhD4
Unknown zZ0CN7-ga54
Unknown zo3J12rxOTc

Unknown function info

Group and home evidence limitations

  • EAP home path, NID ErTMkmSho4E, is implemented separately from the 35 throwing inventory entries. Firmware 13.60 libSceUserService.sprx at 0x3b90 rejects a null destination with 0x80960005, rejects capacities through 0x25 with 0x8096000a, and otherwise formats /<sandbox word>/eap/rodata/home/%08x. Capacity 38 succeeds even though the current host sandbox word produces a 36-character path fitting in 37 bytes; the stricter native check is retained. The three path routines establish a 32-bit user value, destination and capacity; exact source-language typedefs remain unverified. All cited sites were read from disassembly/decompilation, not measured on a console. Module SHA-256: f56b87b4be88f988be50a358a76962ea8cedb9d858777c8737c801e7010beca1; SceShellCore SHA-256: 15606a2cb87b73b091ed2121b37424ea8826d301ba6d07ce0a508da4979ea090.

  • Group-name write limits differ for short writes: host writes return EIO rather than report a truncated name as successfully stored. SceShellCore 13.60 at 0x9f5670 establishes the 128-byte limit and create/truncate flags, but accepts short nonnegative writes. Host equivalence for that case is not claimed.

Callback delivery limitations

  • Callback dispatch uses one host worker, not the presentation thread. Firmware initialization at 0x1930 creates SceUserServiceEvent with entry 0x2380; that worker drains messages through 0x1e10. The message reader requests 8 bytes and dispatches a pointer to the event and the stored user-data value, releasing the callback-list lock before calling user code. Only event types 0 and 1 are modeled here; native scheduling and other event sources remain unavailable.
  • Unregister deactivates a registration before draining it. Inactive registrations remain accounted for until their active call returns, including concurrent unregister and termination. The worker serializes delivery, preventing cross-callback cyclic waits; self-unregister prevents subsequent calls without waiting for its own stack frame. Snapshots and host drain accounting are implementation choices, not independently measured firmware lifecycle guarantees. Reinitialization is refused while termination drains callbacks.
  • Callback evidence: firmware 13.60 libSceUserService.sprx, SHA-256 f56b87b4be88f988be50a358a76962ea8cedb9d858777c8737c801e7010beca1. All cited sites were read from disassembly/decompilation, not measured on a console. Host tests validate this implementation, not console behavior.