当前位置: 首页 > news >正文

Android14 init.environ.rc详解

Android14 init.environ.rc详解_com.android.art-CSDN博客

android 系统的环境变量应该是在init.environ.rc文件里面进行设置

源码地址在这里

system/core/rootdir/init.environ.rc.in

可以在这里给系统配置PATH(系统开机后可使用bin)

# set up the global environment
on early-initexport PATH /product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system_ext/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin:/system/sbinexport 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/asecexport TMPDIR /data/local/tmpexport BOOTCLASSPATH %BOOTCLASSPATH%export DEX2OATBOOTCLASSPATH %DEX2OATBOOTCLASSPATH%export SYSTEMSERVERCLASSPATH %SYSTEMSERVERCLASSPATH%%EXPORT_GLOBAL_ASAN_OPTIONS%%EXPORT_GLOBAL_GCOV_OPTIONS%%EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS%%EXPORT_GLOBAL_HWASAN_OPTIONS%

查看当前 PATH 值

要查看 PATH 变量的当前值,可以使用 echo 命令:

echo $PATH

临时设置 PATH

若想临时为当前终端会话添加新的搜索路径(例如 /home/user/myprogram),可以使用以下命令

export PATH=$PATH:/home/user/myprogram

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%
这些是宏占位符,在编译时会被替换成实际的环境变量设置。

http://www.dtcms.com/a/581185.html

相关文章:

  • 网段并网,打通网络
  • VBA之Word应用第四章第四节:段落集合Paragraphs对象的方法(二)
  • 深耕蓝牙物联网十年:北京桂花网 2015-2025 发展大事件全景
  • MCU微控制器,N32H47x高性能MCU机器人关节控制方案
  • 年销 1.3 亿的 AI 商业操盘手陈灏陈厂长确认登陆创客匠人万人峰会
  • 用户体验 网站重庆便民服务网站APP
  • 教育类网站建站建筑工程网格化管理的目的和意义
  • Flink Source源码解析
  • 春招准备之MyBatis框架篇
  • 华为交换机上配置基于 IP 地址的 ACL
  • 【C++练习】31. C++计算最大公约数(GCD)
  • 从普通屏到 明基RD320U:一台显示器如何提升我的编码效率?
  • 从 ACID 到 MVCC,MySQL 事务与隔离级别超详解
  • 植物生理研究的精准量化:光合作用测定仪的应用与前景
  • Win电脑文字转语音,不限使用次数和字数!可将文字文本内容转换为朗读配音的音频文件!多功能语音合成,内置多语种、多角色语音配音模型,支持普通话标准发音和方言!
  • 网页设计与网站建设作业答案淘宝宝贝关键词排名查询工具
  • 2025年CSP-X复赛真题及题解(山东):T2IOI串
  • 基于网易CodeWave智能开发平台构建宝可梦图鉴
  • Ubuntu2204降内核版本
  • 数据在网络上的转发过程
  • 跨地域传文件太麻烦?Nginx+cpolar 让本地服务直接公网访问
  • ASP.NET MVC 数据验证进阶:用 IValidatableObject 实现自定义验证逻辑 引言:为什么需要 “自定义验证”?
  • 网站流量报表摄像头怎么做直播网站
  • XMOS与飞腾云联袂以模块化方案大幅加速音频产品落地
  • AI 下的 Agent 技术全览
  • 唐山免费网站制作wordpress企业cms开发
  • Windows 里用 Linux 不卡顿?WSL + cpolar让跨系统开发变简单
  • Java 全栈 Devs【应用】:用Spring Boot、MinIO 实现文件上传存储,结合 OnlyOffice 实现文件预览
  • 优化SEO表现的方法:有效利用关键词和长尾关键词的策略
  • 协同感知:未来智能系统的“神经中枢”与跨域融合引擎