From 96b07fa22306738005444e12386167451ed86b39 Mon Sep 17 00:00:00 2001 From: liuguijing <1440265357@qq.com> Date: Wed, 7 May 2025 15:27:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E9=87=8F=E6=9B=B4=E6=96=B0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/xypower/mpmaster/AppMaster.java | 12 +++++++----- .../java/com/xypower/mpmaster/MpMasterService.java | 3 +-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java b/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java index 5d56a45e..f345258d 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java @@ -729,6 +729,7 @@ public class AppMaster { * otaurl: //新版本Apk的Md5 * appurl: //新版本Apk的Md5 * checkMd5: //增量包的下载URL + * key: //app的类型名称 * * */ private void startFrp(JSONObject jsonObject) { @@ -1014,7 +1015,8 @@ public class AppMaster { if (!path.exists()) { path.mkdirs(); } - File file = new File(path, "app.apk"); + String urlMd5 = MD5Util.md5(url);//获取URL的Md5 + File file = new File(path, urlMd5 + ".apk"); if (file.exists()) { file.delete(); } @@ -1044,7 +1046,7 @@ public class AppMaster { path.mkdirs(); } //Patch存储路径 - File patchFile = new File(path, otaurlMd5 + ".PATCH"); + File patchFile = new File(path, otaurlMd5 + ".patch"); if (patchFile.exists()) { patchFile.delete(); } @@ -1064,10 +1066,10 @@ public class AppMaster { if (!oldApk.exists()) { mService.logger.warning("upgradeAppOta未找到对应apk:" + oldurlMd5); //文件下载 - if (dl.download(newurl, patchPath)) { + if (dl.download(newurl, newApkPath)) { mService.logger.info("upgradeAppOta TOTAL_APP: " + newurl); String fileMd5 = MD5Util.getFileMd5(newApk.getAbsolutePath()); - if (checkMd5.equals(fileMd5)) { + if (checkMd5 != null && checkMd5.equals(fileMd5)) { SysApi.installApk(context, newApkPath, context.getPackageName(), true); sendResult(cid, 1, action, action + ":" + mCmdid + " is installing"); } @@ -1080,7 +1082,7 @@ public class AppMaster { boolean b = MpMasterService.applyPatch(oldApkPath, patchPath, newApkPath); if (b) { String fileMd5 = MD5Util.getFileMd5(newApk.getAbsolutePath()); - if (checkMd5.equals(fileMd5)) { + if (checkMd5 != null && checkMd5.equals(fileMd5)) { SysApi.installApk(context, newApkPath, context.getPackageName(), true); sendResult(cid, 1, action, action + ":" + mCmdid + " is installing"); } diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java index feb74576..2864a049 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java @@ -1324,12 +1324,11 @@ public class MpMasterService extends Service { //根据包名重启应用 public static void restartAppByPackage(Context context, String packagename, String reason) { - SysApi.forceStopApp(context, packagename); try { Thread.sleep(100); } catch (InterruptedException e) { - throw new RuntimeException(e); + } //// 然后启动目标应用 try {