android 禁止第三方apk安装和卸载的方法详解
需求是这样的,客户要求提供系统的接口来控制apk的安装和卸载,接口如下
android版本为9.0,首先想到的是在系统里面添加一个自己的service,分别在frameworks/base/core/java/android/app/添加ipolicymanager.aidl,frameworks/base/services/core/java/com/android/server/添加policymanagerservice.java,在frameworks/base/添加policy/java/ga/mdm/policymanager.java,内容如下
同时在frameworks/base/policy/添加android.mk
这里为什么将policymanager.java单独出来,因为policymanager.java是提供给客户用的,单独生成一个jar包,客户只需要使用policy.jar就可以调用,同时需要添加
将路径添加到,否则不会编译
添加模块
添加注册服务的代码
还需要添加selinux权限
这样就行了,烧录重新开机使用adb shell service list可以看到添加的service
在\out\target\common\obj\java_libraries\policy_intermediates找到classes.jar,这就是提供给客户用的jar
具体的禁止和卸载方法如下:
禁止安装可以修改packagemanagerservice.java,在handlestartcopy方法中添加下面的代码
这样在安装时候就会报安装位置不对的信息。
接着是禁止卸载,在packageinstallerservice.java的uninstall添加下面的方法。
到此这篇关于android 禁止第三方apk安装和卸载的方法详解的文章就介绍到这了,更多相关android 禁止第三方apk内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: Android Studio导入项目不支持的两种解决方式
下一篇: Go语言相关练习_选择题(3)