本文讲解通过反射Android pm instal来调用隐藏api, 来静默安装,至于原理什么的,就不多说了,网络上一搜一大把,下面是亲测可行的;
先上Demo,其中的libs文件夹下的class.jar是主角。
本文有一个大前提,那就是你的apk是放在系统/system/priv-app目录下,也就是说,rom是你们自己搞的,手动滑稽=。=
如果你是用AndroidStudio版本的,也是链接中的DemoSilenceInstall
步骤如下:
* 建一个你自己的工程 ,将class.jar放入到libs目录下。
* 然后projectStructure(按F4直接进),进入dependence点击+号,选择FileDependence 记得把 scope置为Provided,如下图:
工程目录下的gradle文件修改:
allprojects {
repositories {
jcenter()
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.add(‘-Xbootclasspath/p:app\libs\class.jar’)
}
}
}看好名字,不要眼瞎,后面是你起的jar包的名字,这个名字随意取,两者对应就行,
以上的操作的目的有两个:
1.就是将class.jar以eclipse中那种userlib的形式导入,
2.调整jar包的优先级- 再将demo中install 包下的代码放到你的工程中.如果这个时候你的PM.java这个文件不报错,那么恭喜,你的操作就算完成了
- 这个步骤我的代码出现了问题,不知道你的会不会,就是Android中65535问题了,也就是解决这个问题做的操作,AS下好解决,这个不做过多解释。
剩下的,就是将应用打包签名,放到/system/priv-app这个目录下 就ok了,
下面说下Eclipse版本的操作,代码都是一样的,jar包也是一样,就两点,jar包通过userlibrary的形式导入,直接放图吧,多图慎入:
!
![Uploading 4_049957.png …]
![
![Uploading 6_086779.png …]
](http://upload-images.jianshu.io/upload_images/1453857-e6cde6675deb959b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
!
![Uploading 10_162291.png …]
至此,,搞定了,╮(╯▽╰)╭,继续搬砖。如果你要问这个class怎么来的,你找做rom的大神们给你编译一份源码就行,反正我不会。OTZ….本文讲解通过反射Android pm instal来调用隐藏api, 来静默安装,至于原理什么的,就不多说了,网络上一搜一大把,下面是亲测可行的;
先上Demo,其中的libs文件夹下的class.jar是主角。
本文有一个大前提,那就是你的apk是放在系统/system/priv-app目录下,也就是说,rom是你们自己搞的,手动滑稽=。=
如果你是用AndroidStudio版本的,也是链接中的DemoSilenceInstall
步骤如下:
* 建一个你自己的工程 ,将class.jar放入到libs目录下。
* 然后projectStructure(按F4直接进),进入dependence点击+号,选择FileDependence 记得把 scope置为Provided,如下图:
工程目录下的gradle文件修改:
allprojects {
repositories {
jcenter()
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.add(‘-Xbootclasspath/p:app\libs\class.jar’)
}
}
}看好名字,不要眼瞎,后面是你起的jar包的名字,这个名字随意取,两者对应就行,
以上的操作的目的有两个:
1.就是将class.jar以eclipse中那种userlib的形式导入,
2.调整jar包的优先级- 再将demo中install 包下的代码放到你的工程中.如果这个时候你的PM.java这个文件不报错,那么恭喜,你的操作就算完成了
- 这个步骤我的代码出现了问题,不知道你的会不会,就是Android中65535问题了,也就是解决这个问题做的操作,AS下好解决,这个不做过多解释。
剩下的,就是将应用打包签名,放到/system/priv-app这个目录下 就ok了,
下面说下Eclipse版本的操作,代码都是一样的,jar包也是一样,就两点,jar包通过userlibrary的形式导入,直接放图吧,多图慎入:
!
![Uploading 4_049957.png …]
![
![Uploading 6_086779.png …]
](http://upload-images.jianshu.io/upload_images/1453857-e6cde6675deb959b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
!
![Uploading 10_162291.png …]
至此,,搞定了,╮(╯▽╰)╭,继续搬砖。如果你要问这个class怎么来的,你找做rom的大神们给你编译一份源码就行,反正我不会。OTZ….