博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用pm命令安装或卸载apk
阅读量:6163 次
发布时间:2019-06-21

本文共 1321 字,大约阅读时间需要 4 分钟。

hot3.png

pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH       pm uninstall [-k] PACKAGE

pm命令可以通过adb在shell中执行,同样,我们可以通过代码来执行。

public static void execCommand(String... command) {		Process process = null;		try {			process = new ProcessBuilder().command(command).start();			//对于命令的执行结果我们可以通过流来读取			// InputStream in = process.getInputStream();			// OutputStream out = process.getOutputStream();			// InputStream err = process.getErrorStream();		} catch (IOException e) {			e.printStackTrace();		} finally {			if (process != null)				process.destroy();		}	}

execCommand("pm", "install", "-f", filePath);//安装apk,filePath为apk文件路径,如/mnt/sdcard/ApiDemos.apkexecCommand("pm", "uninstall", packageName);//卸载apk,packageName为包名,如com.example.android.apis

编译生成apk时,要在你的manifest文件下添加android:sharedUserId="android.uid.system",编译完成之后还无法正常安装,会出现Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE错误,此时,要为apk重新签名。

在android源码\build\target\product\security中找platform.pk8和platform.x509.pem两个文件,在android 编绎目录out下找到 signapk.jar 这个包(源码目录\build\tools\signapk),并把编译好的apk(如PMDemo.apk)放在同一目录下,在重新签名之前,用rar文件打开apk文件,进入META-INF目录下,将CERT.SF和CERT.RSA这两个文件删除掉,然后在命令行中执行以下命令:

java -jar signapk.jar platform.x509.pem platform.pk8 PMDemo.apk NewPMDemo.apk

安装前先把旧的apk卸载,这样重新签名之后的apk就可以正常安装了。

 

转载于:https://my.oschina.net/eclipse88/blog/52270

你可能感兴趣的文章
SQL Server表分区详解
查看>>
STM32启动过程--启动文件--分析
查看>>
垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
查看>>
淘宝的几个架构图
查看>>
linux后台运行程序
查看>>
Python异步IO --- 轻松管理10k+并发连接
查看>>
Oracle中drop user和drop user cascade的区别
查看>>
登记申请汇总
查看>>
Android Jni调用浅述
查看>>
CodeCombat森林关卡Python代码
查看>>
(二)Spring Boot 起步入门(翻译自Spring Boot官方教程文档)1.5.9.RELEASE
查看>>
Shell基础之-正则表达式
查看>>
讲讲吸顶效果与react-sticky
查看>>
c++面向对象的一些问题1 0
查看>>
售前工程师的成长---一个老员工的经验之谈
查看>>
Get到的优秀博客网址
查看>>
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>
Spring常用注解
查看>>