对不起,我的英语不好。我想弄清楚如何以编程方式在没有 root 的情况下静默安装(或删除)APK 文件。
首先我添加android:sharedUserId="android.uid.system"到清单和权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission
android:name="android.permission.INSTALL_PACKAGES"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.DELETE_PACKAGES" tools:ignore="ProtectedPermissions"/>
安装和删除代码
public void installApp(File file){
try {
final String command = "pm install " + file.getPath();
Process proc = Runtime.getRuntime().exec(new String[] {command });
proc.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
public void deleteApp(String appPackage){
try {
final String command = "pm uninstall " + appPackage;
Process proc = Runtime.getRuntime().exec(new String[] {command });
proc.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
据我所知,我需要制造商密钥来签署我的应用程序。我没有找到 Android Studio 模拟器的密钥,所以例如我从这里下载了 Android 4.4 r2 的图像http://www.android-x86.org/releases/releasenote-4-4-r2(并将它安装在Oracle VM)并从这里获得密钥https://sourceforge.net/p/android-x86/build/ci/android-x86-4.4-r2/tree/target/product/security/。据我所知platform.x509.pem,platform.pk8关键是什么我需要。
我用signapk.jar这样的东西签署了我的应用程序java -jar signapk.jar platform.x509.pem platform.pk8 app.apk signapp.apk。
一些已签名的 apk 不想安装时出现错误,App conflicts with existing package by the same name
或者我的设备与此 Apk 不兼容,但没有签名就一切正常。
我尝试过不同的图像、密钥对和模拟器,但没有成功,我做错了什么?
相关分类