adb install 拦截案例

                                                             adb install 拦截案例分析

 

1.开发需求

       需要在用户通过 adb install 时做个拦截,用以提示用户是否继续安装该 Apk ,如果在一定时间内用户不做选择,系统就拒绝本次安装

 

2.开发过程中碰到的问题:

    2.1 拦截功能:

          第一次尝试在 installPackageAsUser 里面加上拦截流程,但在随后的开发中碰到一个问题:当弹框程序要获取 apk path 时(为了在对话框上显示 App Label ), selinux 不予许,而且该 selinux 权限被 neverallowed 了,如果改变的话, CTS 过不了,所以只能另辟蹊径了:

         neverallow system_server { bluetooth_data_file nfc_data_file app_data_file }:file open; can not remove directly, it will cause cts failed

       之后发现,PackageManagerService 在安装的时候肯定也需要解析这个 Apk ,那么它是怎么做的呢?顺着这个思路分析源码,发现 PackageManagerService 是先将要安装的 Apk 先暂存在 data/app 目录下(此时 system_server 是被允许访问的),然后再解析的,那么我们不妨

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值