预装第三方apk,并不是装到/system/app下,而是装到/data/app/下,这两者是有区别是,
前者用户是不可以卸载的,后者用户可以卸载,我们现在实现的就是后者。
1 pm.jar包中添加preinstall命令
修改:frameworks/base/cmds/pm/src/com/android/commands/pm/pm.java
--- a/cmds/pm/src/com/android/commands/pm/Pm.java
+++ b/cmds/pm/src/com/android/commands/pm/Pm.java
@@ -106,6 +106,10 @@ public final class Pm {
runInstall();
return;
}
+ if ("preinstall".equals(op)) {
+ preInstall();
+ return;
+ }
if ("uninstall".equals(op)) {
runUninstall();
@@ -763,7 +767,50 @@ public final class Pm {
System.err.println(PM_NOT_RUNNING_ERR);
}
}
-
+ private void preInstall() {
+ String path = nextArg()