[记录]Android install

Installd service定义在init.rc,class为main,由init进程启动,Java framework通过socket installd同其进行沟通。


程序安装过程:

1. 将apk文件拷贝到目标路径/data/local/tmp或者/sdcard/tmp。

2. 进行verification,把相关信息发送给指定的Verification程序(另外一个APK),由它对要安装的APK进行检查。

3. 执行pm命令,pm是一个脚本文件,最终会通过PKMS的Binder客户端调用installPackageWithVerification以完成后续的安装工作。

4. 清理,删除tmp目录下apk文件,因为PKMS在安装过程中会将该APK复制一份到/data/app目录。


installPackageWithVerification

1. PMS发送INIT_COPY message到PackageHandler。

2. INIT_COPY中检查DefaultContainerService是否有启动,然后看是否需要排队,如果可以安装就发送MCS_BOUND进行安装。

3. copyApk将app文件拷贝到/data/app目录下。





[附一]

1service installd /system/bin/installd
2    class main
3    socket installd stream 600 system system

[参考资料]

http://blog.csdn.net/innost/article/details/47253179


Android安装服务installd源码分析

http://blog.csdn.net/yangwen123/article/details/11104397

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值