NoPssDrm/readme.md
2024-05-20 02:11:46 +00:00

4.6 KiB

-- How to use it?

Your device must be rooted & on android 2.3.0 or later.

Install the NoPssDrm.apk file; Approve all permissions and grant it root access.

  • If your device is not PlayStation Certified, you will have to "Certify" it first, the NoPssDrm app itself can do this, just press the "PS Certify" button.

  • If you do not have the PlayStation Mobile app installed, you will see a "Install PSM" button. this will download the PSM.apk from psmreborn.com, and then install it onto your phone. (this automatically does the android 14+ --bypass-low-target-sdk-block if needed.)

  • Once both PSM and the PlayStation Certificates are installed, press the "Install NoPsmDrm" button. this will install the actual NoPsmDrm patches to the app, and allow PSM games to be played with it.

You can then just place 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

-- "PlayStation Suite" / PSP & PS1 Games When starting one of these games you'll be given the option to launch either with PlayStation Mobile or NoPs1Drm you just need to select the NoPs1Drm option, both times, and the game should launch assuming you have the correct matching APK & ZPAK pair for the game, and the game can actually run on your device.

-- 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;

com.playstation.playstationcertified.jar is taken from an xperia play, however its an empty JAR file with only a class constructor in it and nothing else.

NP Ticket generation is done via a library created by olebeck; see https://github.com/olebeck/npticketjava

-- 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