NoPsmDrm patches for PSM APP on XPERIA PLAY.
Go to file
Li 2a9098c8c0 update version number (again) 2024-04-30 14:11:24 +12:00
.idea
app update version number (again) 2024-04-30 14:11:24 +12:00
gradle/wrapper
libsuperuser improve backup function 2024-04-29 00:52:34 +12:00
.gitignore
build.gradle
gradle.properties
gradlew
gradlew.bat
readme.md
settings.gradle

readme.md

-- How to use it?

Your device must be rooted & it must be on android 4.4.2 or older,

Install the PlayStation Mobile App : https://web.archive.org/web/20150311233351/http://playstation.com/psm/store/en.html, if you do not already have it.

then install the NoPsmDrm Android app, and click the "Install" button. grant it root permission and you should be good to go!

Put NoPsmDrm backups of games into /sdcard/data/android/com.playstation.psstore/files/psm ...

the format Vita NoPsmDrm backups come in usually contains an RW/ and RO/ folder, which isn't present on the Android version. you can just move all the files from RO and RW into the games Title ID folder (the NPXAXXXX one..), and that should get it working

-- known issues:

  • Games only run with wifi off .. (i think its trying to check for updates or something..)
  • 8008103F error code when starting -- on some devices, wifi is required to be turned on when starting the app for the first time. this is not actually accessing a server and its just so it can read your Mac Address, which PSM needs for (something???)

-- source code?

libdefault.so mod in here is https://silica.codes/Li/libdefault_proxy

libpsmkdc_jni mod is https://silica.codes/Li/libpsmkdc_stub

the library.db has had the following trigger added :

CREATE TRIGGER CONTENT_ID_MEMES AFTER INSERT ON LibraryTable
BEGIN
UPDATE LibraryTable SET content_id="UM0105-" || title_id || "_00-0000000000000000" WHERE title_id = new.title_id;
END;

... the rest should be in the installer apk code so :d

-- Permissions explaination

SuperUser - This app works by modifying the internal data for the PSM application (at /data/data/com.playstation.psstore) so it sees it as if you have already logged into the app and setup an account, then it patches libdefault and libpsmkdc for nopsmdrm-like patches,

there seems to be some obfuscation going on with libdefault that makes it not work correctly on a modified APK, and besides to have the ability to backup already installed games will always require root access.

Storage (read/write) - If you have PSM already installed and activated, the first thing the app will do is backup all your PSM applications internal data files to your SDCard, before modifying any of it, this requires the external storage permission ...

Phone calls - This is litterally, just to read your IMEI number, you see PsmDrm derives a "Console ID" using a bunch of unique identifiers on your phone, one of which, is your IMEI number, and you need the entire Phone permission to read the IMEI on android 2.2.X, for some reason!

com.playstation.psscertified - this is a specical permission given to be able to access the pscertified framework, which is used to check if your device is "PlayStation Certified".

-- Credits

  • frangarj for the original NoPsmDrm on PSVita https://github.com/frangarcj/NoPsmDrm/
  • Chaser - an absolute legend who still had their old XPLAY with PSM running on it still going all these years later, could never have done it without ya!
  • Li, for being the single person who has done the most research into PSM out of anyone ever ..
  • Whomever was around before me, Thanks for keeping the dream alive..
  • ele7enxxh for the hooking library that actually works on android 2.2.X https://github.com/ele7enxxh/Android-Inline-Hook/tree/master