From 15406126360d43a514a8a4158d52da5f1a2337ac Mon Sep 17 00:00:00 2001 From: Li Date: Thu, 25 Apr 2024 15:04:24 +1200 Subject: [PATCH] Update code --- .gitignore | 3 +- app/build.gradle | 5 +- app/src/main/AndroidManifest.xml | 2 +- .../java/com/psmreborn/nopsmdrm/Helper.java | 13 ++++++ .../psmreborn/nopsmdrm/NoPsmDrmInstaller.java | 43 ++++++++++++++++-- .../java/com/psmreborn/nopsmdrm/Root.java | 4 +- .../java/com/psmreborn/nopsmdrm/Startup.java | 20 ++++++-- app/src/main/res/layout/activity_main.xml | 32 ++++++------- app/src/main/res/raw/libdefault.so | Bin 21984 -> 26080 bytes app/src/main/res/raw/library.db | Bin 23552 -> 23552 bytes 10 files changed, 92 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index e496144..0e6ce86 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,5 @@ .cxx local.properties libsuperuser/build/* -app/build/* \ No newline at end of file +app/build/* +app/release/* \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index daa547a..a4b65e4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,7 @@ plugins { android { namespace 'com.psmreborn.nopsmdrm' + //noinspection GradleDependency were targeting the xperia play compileSdk 10 defaultConfig { @@ -11,8 +12,8 @@ android { minSdk 10 //noinspection ExpiredTargetSdkVersion dont care about google play targetSdk 10 - versionCode 1 - versionName "1.0" + versionCode 4 + versionName "1.4" } buildTypes { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a25367f..8ce49ba 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,7 +9,7 @@ android:allowBackup="true" android:icon="@drawable/app_icon" android:label="@string/app_name" - tools:targetApi="13"> + tools:targetApi="10"> diff --git a/app/src/main/java/com/psmreborn/nopsmdrm/Helper.java b/app/src/main/java/com/psmreborn/nopsmdrm/Helper.java index d2ab818..0a2e177 100644 --- a/app/src/main/java/com/psmreborn/nopsmdrm/Helper.java +++ b/app/src/main/java/com/psmreborn/nopsmdrm/Helper.java @@ -4,15 +4,28 @@ import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; +import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; +import eu.chainfire.libsuperuser.Shell; + public class Helper { private static Context ctx; public static void setContext(Context context){ ctx = context; } + public static boolean isNoPsmDrmAlreadyInstalled() { + try { + if(new File(getPsmApp().nativeLibraryDir, "libdefault_real.so").exists()){ + return true; + } + } catch (PackageManager.NameNotFoundException e) { + return false; + } + return false; + } public static boolean isPsmInstalled(){ try { ctx.getPackageManager().getApplicationInfo("com.playstation.psstore", 0); diff --git a/app/src/main/java/com/psmreborn/nopsmdrm/NoPsmDrmInstaller.java b/app/src/main/java/com/psmreborn/nopsmdrm/NoPsmDrmInstaller.java index e3e3cef..28a79d2 100644 --- a/app/src/main/java/com/psmreborn/nopsmdrm/NoPsmDrmInstaller.java +++ b/app/src/main/java/com/psmreborn/nopsmdrm/NoPsmDrmInstaller.java @@ -20,6 +20,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; +import java.util.Locale; import eu.chainfire.libsuperuser.Shell; @@ -156,10 +157,44 @@ public class NoPsmDrmInstaller extends AsyncTask { String r_localLibrary = new File(sharedPrefsPath, "LocalLibrary.xml").getAbsolutePath(); // generate shared_prefs - writeTxtFile(c_signinInfo, "\n\n"+emailAddress+"\n\n"+password+"\n\n\n"); - writeTxtFile(c_psstorePrefs, "\n\n\n"+accountId+"\n\n\n\n\n\n\nUS\n\n\n\n\n\n387ce7e424258aef426aaa5be8a1638a\n\n\nen\n\n\n\n"); - writeTxtFile(c_runningContentInfo, "\n\n\n\n\n"); - writeTxtFile(c_localLibrary, "\n\n\n\n\n\n"); + writeTxtFile(c_signinInfo, "\n" + + "\n"+emailAddress+"\n" + + "\n" + + ""+password+"\n" + + "\n" + + "\n"); + + writeTxtFile(c_psstorePrefs, "\n" + + "\n" + + "\n" + + ""+accountId+"\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "US\n" + + "\n\n" + + "\n" + + "\n" + + "387ce7e424258aef426aaa5be8a1638a\n" + + "\n" + + "\n" + + ""+ Locale.getDefault().getLanguage()+"\n" + + "\n" + + "\n" + + "\n"); + + writeTxtFile(c_runningContentInfo, "\n" + + "\n\n" + + "\n" + + "\n"); + + writeTxtFile(c_localLibrary, "\n" + + "\n\n" + + "\n" + + "\n" + + "\n"); // copy to the correct place and set permissions properly. copyChmodAndChown(c_signinInfo, r_signinInfo, 660, String.valueOf(stringEncryptor.getPsmUid())); diff --git a/app/src/main/java/com/psmreborn/nopsmdrm/Root.java b/app/src/main/java/com/psmreborn/nopsmdrm/Root.java index e6c815b..e578be0 100644 --- a/app/src/main/java/com/psmreborn/nopsmdrm/Root.java +++ b/app/src/main/java/com/psmreborn/nopsmdrm/Root.java @@ -18,7 +18,7 @@ public class Root { public static void killApplication(String processName) throws Shell.ShellDiedException { Log.i("ROOT", "Killing process: " + processName); - Shell.Pool.SU.run(new String[] { busyboxBinary + " pkill '" + processName +"'" }); + Shell.Pool.SU.run(new String[] { busyboxBinary + " pkill -9 '" + processName +"'" }); } public static boolean fileExistRoot(String filename) throws Shell.ShellDiedException { Log.i("ROOT", "FileExistRoot: " + filename); @@ -117,7 +117,7 @@ public class Root { private static void setupBusyBox() throws IOException { Log.i("ROOT","Creating busybox binary"); File tmpFile = new File(ctx.getCacheDir(), "busybox"); - if(!tmpFile.exists()){ + if(!tmpFile.exists()) { tmpFile.createNewFile(); if(tmpFile.setExecutable(true,false)) { diff --git a/app/src/main/java/com/psmreborn/nopsmdrm/Startup.java b/app/src/main/java/com/psmreborn/nopsmdrm/Startup.java index 7060c9d..b4b803c 100644 --- a/app/src/main/java/com/psmreborn/nopsmdrm/Startup.java +++ b/app/src/main/java/com/psmreborn/nopsmdrm/Startup.java @@ -2,6 +2,7 @@ package com.psmreborn.nopsmdrm; import android.app.Activity; import android.content.Context; +import android.content.pm.PackageManager; import android.os.AsyncTask; import android.os.Environment; import android.widget.Button; @@ -10,6 +11,8 @@ import android.widget.TextView; import eu.chainfire.libsuperuser.Shell; import static com.psmreborn.nopsmdrm.Helper.*; +import java.io.File; + public class Startup extends AsyncTask { private Context ctx; @@ -19,7 +22,6 @@ public class Startup extends AsyncTask { public Startup(Context context) { this.ctx = context; } - @Override protected Void doInBackground(Void... params) { try { @@ -40,6 +42,8 @@ public class Startup extends AsyncTask { wasError = true; errorMsg = "No SD Card inserted."; } + Root.setContext(ctx); + } catch (Exception e) { wasError = true; errorMsg = e.getMessage(); @@ -49,13 +53,21 @@ public class Startup extends AsyncTask { @Override protected void onPostExecute(Void result) { + TextView statusTV = (TextView) ((Activity)ctx).findViewById(R.id.errorMsg); + Button installButton = (Button) ((Activity)ctx).findViewById(R.id.installPsm); + if(!wasError) { - Button installButton = (Button) ((Activity)ctx).findViewById(R.id.installPsm); + statusTV.setText(""); + + if(isNoPsmDrmAlreadyInstalled()){ + installButton.setText("Update NoPsmDrm"); + }; + installButton.setEnabled(true); + } else{ - TextView rootDetectedTV = (TextView) ((Activity)ctx).findViewById(R.id.errorMsg); - rootDetectedTV.setText("Error: "+errorMsg); + statusTV.setText("Error: "+errorMsg); } } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index a67d681..c11a77d 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -2,30 +2,30 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:paddingTop="10dp" - android:paddingLeft="10dp" - android:paddingRight="10dp" - android:paddingBottom="10dp" + android:paddingTop="15dp" + android:paddingLeft="15dp" + android:paddingRight="15dp" + android:paddingBottom="15dp" android:keepScreenOn="true" android:noHistory="true" android:orientation="vertical"> -