From fe5616622e3f78f8d553f5fd5c7c22dc0c3030b6 Mon Sep 17 00:00:00 2001 From: renwj Date: Fri, 31 Mar 2023 16:30:20 +0800 Subject: [PATCH] =?UTF-8?q?[2.15.0][=E5=A2=9E=E9=87=8F=E5=8D=87=E7=BA=A7]?= =?UTF-8?q?=20=E5=A2=9E=E5=8A=A0=E6=9C=AC=E5=9C=B0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E6=94=AF=E6=8C=81=E5=A2=9E=E9=87=8F=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E5=B9=B6=E8=AE=B0=E5=BD=95=E6=AD=A4=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/launcher/startup/ConfigStartUp.kt | 2 + .../upgrade/UpgradeAppNetWorkManager.kt | 53 +++++++++---------- .../provider/MoGoUpgradeProviderImpl.kt | 5 +- .../upgrade/provider/db/vo/Vo.kt | 1 + .../mogo-core-function-patch/build.gradle | 1 + .../core/data/config/FunctionBuildConfig.kt | 1 - .../api/upgrade/IMoGoUpgradeProvider.kt | 2 +- 7 files changed, 32 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt index b1b49757f4..159f2b4a39 100644 --- a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt @@ -47,6 +47,8 @@ object ConfigStartUp { //不能启动自动驾驶的档位 FunctionBuildConfig.unableLaunchAutopilotGear = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR + //是否支持Patch升级 + FunctionBuildConfig.isSupportPatchUpgrade = BuildConfig.IS_SUPPORT_PATCH_UPGRADE // // 这里影响当前Activity的身份信息,多进程先保持与原来一样,主进程为司机端,:passenger 进程为乘客端 TODO 暂时不启用,仅做洱海交付,独立乘客屏+宣传视频 // if (ProcessUtils.getCurrentProcessName().contains(":passenger")) { // if (AppIdentityModeUtils.isBus(BuildConfig.APP_IDENTITY_MODE)) { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeAppNetWorkManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeAppNetWorkManager.kt index 757b97ea35..e84bd7bbe4 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeAppNetWorkManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeAppNetWorkManager.kt @@ -54,7 +54,7 @@ class UpgradeAppNetWorkManager private constructor() { d(SceneConstant.M_BINDING + TAG, "getAppUpgradeInfo mac = $macAddress---type = $type---sn = $sn---versionCode =$versionCode---versionName =$versionName") val request = UpgradeAppRequest(sn, macAddress, type, versionName, "1") val requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)) - provider?.recordUpgradeRecord(sn ?: "", macAddress, type) + provider?.recordUpgradeRecord(sn ?: "", macAddress, type, FunctionBuildConfig.isSupportPatchUpgrade) provider?.recordUpgradeRequestStart() val info = mUpgradeApiService.getUpgradeInfo(requestBody) if (info.result != null) { @@ -79,37 +79,34 @@ class UpgradeAppNetWorkManager private constructor() { val patchInfo = info.result.patchInfo var downloadUrl: String = info.result.appUrl val provider = upgradeProvider() + var isGoFullUpgrade = true if (patchInfo != null) { - val f1 = FunctionBuildConfig.isSupportPatchUpgrade - if (!f1) { + val isSupport = FunctionBuildConfig.isSupportPatchUpgrade + if (!isSupport) { Log.d("ApkInstaller", "当前版本配置不支持增量升级...") - } - val f2 = provider != null - if (f1 && !f2) { - Log.d("ApkInstaller", "provider为空...") - } - var f3 = true - if (f2 && provider != null && !provider.isNeedGoPatchUpgrade()) { - Log.d("ApkInstaller", "上次patch升级失败了...") - f3 = false - } - var f4 = true - if (f3) { - provider?.recordUpgradeRecord(patchInfo.targetVersion, patchInfo.targetMd5, 1) - provider?.recordSourceMd5CheckStart() - f4 = isPatchAccept(Utils.getApp(), patchInfo.sourceMd5, patchInfo.patchSize.toLong()) - if (!f4) { - Log.d("ApkInstaller", "旧版本apk包的md5与服务端上的md5不匹配...") - provider?.recordSourceMd5CheckFailed("旧apk的md5与服务端的md5不一致:[server_md5: ${patchInfo.sourceMd5}, apk_md5: ${AppUtils.getAppApkMd5()}]") - } else { - provider?.recordSourceMd5CheckSuccess() + } else { + if (provider != null && provider.isNeedGoPatchUpgrade()) { + Log.d("ApkInstaller", "需要走patch升级 -- 1 --") + provider.recordUpgradeRecord(patchInfo.targetVersion, patchInfo.targetMd5, 1) + Log.d("ApkInstaller", "需要走patch升级 -- 2 --") + provider.recordSourceMd5CheckStart() + Log.d("ApkInstaller", "需要走patch升级 -- 3 --") + val accept = isPatchAccept(Utils.getApp(), patchInfo.sourceMd5, patchInfo.patchSize.toLong()) + Log.d("ApkInstaller", "需要走patch升级 -- 4 --:$accept") + if (!accept) { + Log.d("ApkInstaller", "旧版本apk包的md5与服务端上的md5不匹配...") + provider.recordSourceMd5CheckFailed("旧apk的md5与服务端的md5不一致:[server_md5: ${patchInfo.sourceMd5}, apk_md5: ${AppUtils.getAppApkMd5()}]") + } else { + Log.d("ApkInstaller", "需要走patch升级 -- 5 --") + provider.recordSourceMd5CheckSuccess() + downloadUrl = patchInfo.patchDownloadUrl + addPatchInfo(patchInfo) + isGoFullUpgrade = false + } } } - if (f4) { - downloadUrl = patchInfo.patchDownloadUrl - addPatchInfo(patchInfo) - } - } else { + } + if (isGoFullUpgrade) { provider?.recordUpgradeRecord(info.result.versionName, null, 0) } withContext(Dispatchers.Main) { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/provider/MoGoUpgradeProviderImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/provider/MoGoUpgradeProviderImpl.kt index ce73bac8de..3ac35b532e 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/provider/MoGoUpgradeProviderImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/provider/MoGoUpgradeProviderImpl.kt @@ -5,7 +5,6 @@ import android.content.pm.PackageInstaller import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.data.deva.chain.* -import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion import com.mogo.eagle.core.function.api.upgrade.* import com.mogo.eagle.core.utilcode.util.* import com.zhjt.mogo_core_function_devatools.upgrade.provider.db.UpgradeDbHelper @@ -25,8 +24,8 @@ class MoGoUpgradeProviderImpl: IMoGoUpgradeProvider { override fun init(context: Context?) {} - override suspend fun recordUpgradeRecord(sn: String, mac: String, type: String?) { - val record = Record(AppUtils.getAppVersionName(), sn, mac, type, time = System.currentTimeMillis()) + override suspend fun recordUpgradeRecord(sn: String, mac: String, type: String?, isSupportPatch: Boolean) { + val record = Record(AppUtils.getAppVersionName(), sn, mac, type, isSupportPatch, time = System.currentTimeMillis()) UpgradeDbHelper.insertRecord(record) try { onUpgradeRecordLinkLog(mapOf("upgrade_start" to GsonUtils.toJson(record))) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/provider/db/vo/Vo.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/provider/db/vo/Vo.kt index deeb37932b..a73863d5b2 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/provider/db/vo/Vo.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/provider/db/vo/Vo.kt @@ -12,6 +12,7 @@ data class Record( var sn: String, var mac: String, var type: String?, + var isSupportPatch: Boolean, var time: Long = 0L ) diff --git a/core/function-impl/mogo-core-function-patch/build.gradle b/core/function-impl/mogo-core-function-patch/build.gradle index 3a797b75a6..8baf9e1a0b 100644 --- a/core/function-impl/mogo-core-function-patch/build.gradle +++ b/core/function-impl/mogo-core-function-patch/build.gradle @@ -76,6 +76,7 @@ rootProject.gradle.taskGraph.whenReady { TaskExecutionGraph graph -> } if (app != null) { def android = (AppExtension) app.extensions.findByName("android") + android.defaultConfig.buildConfigField("boolean", "IS_SUPPORT_PATCH_UPGRADE", rootProject.hasProperty("PATCH_UPGRADE_SUPPORT") ? rootProject.properties["PATCH_UPGRADE_SUPPORT"] : false) def signConfig = android.signingConfigs.getByName("release") if (signConfig != null && isOnlineReleaseBuild(gradle)) { if (tasks != null) { diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt index dc59d5ff33..2615772153 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt @@ -219,5 +219,4 @@ object FunctionBuildConfig { @Volatile @JvmField var isSupportPatchUpgrade = true - } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/upgrade/IMoGoUpgradeProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/upgrade/IMoGoUpgradeProvider.kt index 04083d4c87..f0ef0c7c81 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/upgrade/IMoGoUpgradeProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/upgrade/IMoGoUpgradeProvider.kt @@ -4,7 +4,7 @@ import com.alibaba.android.arouter.facade.template.IProvider interface IMoGoUpgradeProvider: IProvider { - suspend fun recordUpgradeRecord(sn: String, mac: String, type: String?) + suspend fun recordUpgradeRecord(sn: String, mac: String, type: String?, isSupportPatch: Boolean) suspend fun recordUpgradeRequestStart()