美文网首页
0326-安卓apk应用/root权限

0326-安卓apk应用/root权限

作者: 小咕咕coco | 来源:发表于2020-03-26 10:59 被阅读0次

    来自http://4ch12dy.site/2019/08/01/android-apk-install-process/android-apk-install-process/#an-zhuang-guo-cheng-xiao-jie

    来自:https://zhuanlan.zhihu.com/p/79973102

    我们知道,Windows应用程序的安装包是一个可执行的压缩包,安装的过程是把压缩包中的数据和依赖库拷贝到安装目录,再在桌面或启动栏创建快捷方式,那么安卓的APK安装过程是不是也是这样的呢

    apk:

    APK包是个简单的压缩包,可以用zip工具直接解压它

    一个APK包含以下这些文件:

    • META-INF目录:包含两个签名文件(CERT.SF和CERT.RSA),以及一个manifest文件(MANIFEST.MF)
    • assets目录:包含工程中的asset目录下的文件,可以使用AssetManager获取
    • res目录:包含那些没有被编译到resources.arsc的资源
    • lib目录:包含适用于不同处理器的第三方依赖库,这里边可以有多个子目录,比如armeabi, armeabi-v7a, arm64-v8a, x86, x86_64, 以及mips
    • resources.arsc文件:存储编译好的资源,包括项目工程中的res/values目录里的xml文件,它们都被编译成二进制格式,也包括一些路径,指向那些没有被编译的资源,比如layout文件和图片
    • classes.dex文件:项目中的java类都被编译到该dex文件,这个文件可以被Android的Dalvik/ART虚拟机解析。
    • AndroidManifest.xml:二进制格式的manifest文件,这个文件是必须的。
      这些文件是Android系统运行一个应用程序时会用到的数据和代码,

    安装过程

    1. 与应用相关的一些目录

    /system/priv-app:系统应用安装路径,Android 4.4+ 开始出现,区分系统应用权限,拥有 SignatureOrSystem 权限,此目录下的 service 具有保活能力
    /system/app:系统应用安装路径,权限略低于 priv-app 目录下的应用,放置比如厂商内置应用
    /data/app:用户应用安装路径,应用安装时将 apk 复制到此目录下
    /data/data:用户应用数据存放路径,存在沙箱隔离
    /data/dalvik-cache:存放应用的dex 文件
    /data/system:存放应用安装相关文件

    packages.xml 是一个应用的注册表,在解析应用时创建,有变化时更新,记录系统权限,各应用信息,如name, codePath, flag, version, userid,下次开机时直接读取并添加到内存列表
    package.list 指定应用的默认存储位置,userid 等

    1. 应用安装过程总结

    将应用 apk 拷贝到指定目录下
    解压 apk,将 dex 文件拷贝到 /data/dalvik-cache 目录,创建 /data/data/ 数据目录
    解析 AndroidManifest.xml 及其他资源文件,提取应用包信息,注册到 packags.xml 中
    由 Launcher 进程通过 PMS 取出所有应用程序,展示在桌面上

    相关文章

      网友评论

          本文标题:0326-安卓apk应用/root权限

          本文链接:https://www.haomeiwen.com/subject/pxbquhtx.html