[记录]Android install

来源:互联网 发布:知乎注册 不用手机号 编辑:程序博客网 时间:2024/06/04 00:36

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/installd2    class main3    socket installd stream 600 system system

[参考资料]

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


Android安装服务installd源码分析

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

原创粉丝点击