From 3e6a8dc7de1b108dc70647f62bc499d7b68852b2 Mon Sep 17 00:00:00 2001 From: L-JINBIN <921558445@qq.com> Date: Wed, 25 Jan 2023 17:37:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=99=BA=E8=83=BD=E8=AF=86=E5=88=AB=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=9B=AE=E5=BD=95=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/bin/mt/signature/KillerApplication.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/killer/src/main/java/bin/mt/signature/KillerApplication.java b/killer/src/main/java/bin/mt/signature/KillerApplication.java index aabaea8..8f3e6a2 100644 --- a/killer/src/main/java/bin/mt/signature/KillerApplication.java +++ b/killer/src/main/java/bin/mt/signature/KillerApplication.java @@ -1,10 +1,12 @@ package bin.mt.signature; +import android.annotation.SuppressLint; import android.app.Application; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.Signature; import android.os.Build; +import android.os.Environment; import android.os.Parcel; import android.os.Parcelable; import android.util.Base64; @@ -136,7 +138,7 @@ public class KillerApplication extends Application { return; } File apkFile = new File(apkPath); - File repFile = new File("/data/data/" + packageName + "/origin.apk"); + File repFile = new File(getDataFile(packageName), "origin.apk"); try (ZipFile zipFile = new ZipFile(apkFile)) { String name = "assets/SignatureKiller/origin.apk"; ZipEntry entry = zipFile.getEntry(name); @@ -159,6 +161,18 @@ public class KillerApplication extends Application { hookApkPath(apkFile.getAbsolutePath(), repFile.getAbsolutePath()); } + @SuppressLint("SdCardPath") + private static File getDataFile(String packageName) { + String username = Environment.getExternalStorageDirectory().getName(); + if (username.matches("\\d+")) { + File file = new File("/data/user/" + username + "/" + packageName); + if (file.canWrite()) { + return file; + } + } + return new File("/data/data/" + packageName); + } + private static String getApkPath(String packageName) { try (BufferedReader reader = new BufferedReader(new FileReader("/proc/self/maps"))) { String line;