APEX - Android Q

APEX(Android Pony Express)是Android 10引入的一种系统模块容器格式,旨在改进底层模块更新流程。它解决了基于APK更新系统模块的限制,如启动延迟和格式不匹配。APEX文件包含apex_manifest.json、AndroidManifest.xml、apex_pubkey和apex_payload.img等关键文件,采用双重签名机制确保安全。APEX Manager是一个独立的Native进程,负责APEX的验证、安装和卸载。通过adb或其他方式下载APEX文件,经过验证后,系统在重启时加载新版本。APEX支持多种文件类型,并允许预安装在/system/apex目录下。
摘要由CSDN通过智能技术生成

引自https://source.android.com/devices/tech/ota/apex

因本人忘性越来越大,故记录一下本文加深下记忆,描述有些问题的地方见谅。

建议有英文阅读能力的同学自行访问官方网址。

 

Android Pony EXpress (APEX) 是Android 10引入的一种容器格式,用于底层系统模块的安装flow。因为不用符合Android标准应用程序格式, 因此该格式的引用可以促进更新系统模块。底层模块包括像Native的services和库、HALs、ART等。

背景

尽管Android支持底层系统模块以安装Android应用程序的方式更新,但仍然有以下缺点

1、基于APK的模块无法在启动流程中更早的启动。PackageManager 是apk的重要存储中心,且只能被activity manager启动。因此,APK的模块只能在启动序列较晚的阶段中准备好。

2、APK的格式(尤其是manifest)对系统模块来说并不是非常适合

设计

本节介绍APEX文件格式和APEX Manager。APEX Manager是管理APEX文件的Service。

APEX文件格式

APEX文件格式如下

Note: 上图应该是Android Q的,R应该又有些变化

从顶层看,APEX文件是一个Zip文件,其中的文件均是未压缩的。

其中的四个文件有

  • apex_manifest.json
  • AndroidManifest.xml
  • apex_pubkey
  • apex_payload.img

apex_manifest.json文件包括package name和版本,用来标识该APEX文件

AndroidManifest.xml可以允许APEX文件使用一些apk的工具,像adb、package manager、 app install app等。举个例子APEX文件可以使用aapt检查文件的metadata。该文件还包括packcage name和版本号,这些内容通常也会再apex_manifest.json文件中。

apex_pa

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值