有哪些好的ps素材网站网页logo
init.environ.rc中主要是在on early-init阶段执行由export指令设置全局环境变量,为后续系统服务、zygote、应用程序运行提供路径和配置基础。
它定义了:
- 系统分区位置(
/system
, /system/app,/data
) - APEX 模块路径(ART(Android Runtime)、i18n(国际化模块,包括ICU字符库)、tzdata--市区数据)
- 存储抽象路径(
/storage
,/sdcard
) - 调试工具选项(ASan、GCOV 等)
# set up the global environment
on early-initexport ANDROID_BOOTLOGO 1export ANDROID_ROOT /systemexport ANDROID_ASSETS /system/appexport ANDROID_DATA /dataexport ANDROID_STORAGE /storageexport ANDROID_ART_ROOT /apex/com.android.artexport ANDROID_I18N_ROOT /apex/com.android.i18nexport ANDROID_TZDATA_ROOT /apex/com.android.tzdataexport EXTERNAL_STORAGE /sdcardexport ASEC_MOUNTPOINT /mnt/asec%EXPORT_GLOBAL_ASAN_OPTIONS%%EXPORT_GLOBAL_GCOV_OPTIONS%%EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS%%EXPORT_GLOBAL_HWASAN_OPTIONS%
详细解释如下:
1. export ANDROID_BOOTLOGO 1
- 控制是否显示 Android 开机动画(boot logo)
1
= 显示开机动画,0
= 不显示- 后续
surfaceflinger
或bootanimation
服务会读取这个变量- 实际是否显示还受
ro.bootanim
属性影响。
2. export ANDROID_ROOT /system
定义 Android 系统分区的根目录
- 大多数系统二进制文件、库、配置都在
/system
下- 例如:
/system/bin
,/system/lib
,/system/etc
3. export ANDROID_ASSETS /system/app
指定系统应用资源文件路径
- 主要用于某些原生代码需要访问
/system/app
下的资源(如resources.arsc
)- 实际应用安装路径是
/system/app
和/system/priv-app
4. export ANDROID_DATA /data
用户数据分区路径
- 存放:用户 App 数据(
/data/data/<package>
),Dalvik/ART 缓存(/data/dalvik-cache
),系统数据库(/data/system
)- /data分区通常在init后期才挂载,这里只是提前设置路径。
5. export ANDROID_STORAGE /storage
- 存储抽象路径
- Android 使用
/storage
作为挂载点,例如:
/storage/emulated/0
→ 内部存储(用户 0)/storage/1234-5678
→ SD 卡
6. export ANDROID_ART_ROOT /apex/com.android.art
指向 ART(Android Runtime) 的 APEX 模块路径
- APEX (Android Pony Express)是 Android 10+ 引入的系统级模块化组件格式,用于打包和更新核心系统组件,类似系统级别的APK,但面向的是底层服务和库。
/apex/com.android.art
包含:
dex2oat
编译器dalvikvm
虚拟机libart.so
等运行时库
✅APEX 的主要用途
用途 | 示例 |
---|---|
更新底层系统服务 | 更新 com.android.media (多媒体服务) |
更新运行时 | 更新 ART(com.android.art ) |
更新硬件抽象层 | 更新 com.android.hardware.graphics.mapper |
更新安全组件 | 更新 com.android.tzdata (时区数据) |
✅ 常见的 APEX 模块(Android 13+)
APEX 名称 | 功能 |
---|---|
com.android.art | Android Runtime(ART) |
com.android.tzdata | 时区数据 |
com.android.i18n | 国际化(ICU 库) |
com.android.conscrypt | 安全通信(OpenSSL 替代) |
com.android.media | 多媒体服务 |
com.android.os.statsd | 统计服务 |
7. export ANDROID_I18N_ROOT /apex/com.android.i18n
国际化(i18n)模块路径
- 包含:
- ICU(International Components for Unicode)库
- 时区数据(部分)
- 文字处理规则
8. export ANDROID_TZDATA_ROOT /apex/com.android.tzdata
- 时区数据模块路径
- 包含
tzdata
数据库(由 IANA 维护)- 用于
java.util.TimeZone
、android.icu
等- 以前在
/system/usr/share/zoneinfo
,现在通过 APEX 更新。
9. export EXTERNAL_STORAGE /sdcard
- 外部存储的符号链接路径
/sdcard
通常是/storage/emulated/0
的软链接- 兼容老应用使用
/sdcard
路径- 实际路径由
vold
或storaged
服务管理。
10. export ASEC_MOUNTPOINT /mnt/asec
- ASEC(Android Secure External Code)挂载点
- 用于安装
.apk
到 SD 卡的老机制(已废弃)- 现代 Android 使用 Adoptable Storage 或 SAF(Storage Access Framework)
- ⚠️ 这个变量现在基本不用了,保留是为了兼容性。
11. %EXPORT_GLOBAL_XXX_OPTIONS%
这些是宏占位符,在编译时会被替换成实际的环境变量设置。