降级具有不同目标 SDK 的 APK

Downgrading an APK with diferent target SDK

当设备上已经安装了更高版本代码的 apk 时,我想使用 adb 安装具有较低版本代码的 APK。

我知道我可以使用以下标志绕过降级标志:

adb install -t -r -d <path_to_apk>

但是这会导致不同的错误:

Performing Streamed Install 
adb: failed to install <apk_name> Failure [-26: Package <package_name> new target SDK 7 doesn't support runtime permissions but the old target SDK 29 does.]

我了解到无法覆盖apk,因为当前target SDK(29)支持runtime权限,而新apk的target SDK(7)不支持。

我见过 macOS 应用程序设法降级我正在尝试降级的同一应用程序,但我不知道如何降级。有没有我可以用来绕过此限制的标志?

我最终采取了稍微不同的方法:

首先,我使用以下命令卸载了 apk:

abd uninstall -k <path_to_apk>

-k 标志确保应用程序数据仍保留在设备上。

之后,我使用以下标志安装了具有较低版本代码的 APK:

abd install -r -d <path_to_apk>

尝试安装不带 -r -d 标志的 APK 将不起作用,即使之前的 APK 已卸载。