Android 9/14/15 预装 APK 的构建入口与分区差异
摘要同一个 APK 在 Android 9、Android 14 和 Android 15 上可能需要使用不同的源码目录、构建规则和安装路径。EShare 在 Android 9/14 中位于device目录而 Android 15 位于vendor目录Android 14 支持的system_ext模块规则在 Android 9 中可能不生效。本文介绍如何判断当前平台的构建入口、选择模块编译或PRODUCT_COPY_FILES并通过最终产物确认 APK 的真实分区位置。1. 三个平台的目录并不相同项目中的 EShare 模块位于Android 9 device/hisilicon/bigfish/packages/modules/eshareserver Android 14 device/hisilicon/bigfish/packages/modules/eshareserver Android 15 vendor/kitking/packages/modules/eshareserver这不是简单的目录迁移。源码目录通常还决定哪个产品文件引入模块模块属于 system 还是 vendor使用哪套 Make/Soong 规则最终安装到哪个分区。因此跨 Android 版本移植时第一步不是复制目录而是找到当前产品的构建入口。2. 模块编译与原样拷贝如果 APK 能够被当前构建系统正确处理可以定义预编译模块include $(CLEAR_VARS) LOCAL_MODULE : EService LOCAL_SRC_FILES : apk/EService.apk LOCAL_MODULE_CLASS : APPS LOCAL_CERTIFICATE : platform include $(BUILD_PREBUILT)然后在产品配置中加入PRODUCT_PACKAGES EService这种方式的优点是构建系统知道模块依赖可以处理 JNI 库可以自动生成安装文件列表便于统一管理模块开关。但如果 APK 必须保持原始签名或者当前版本的模块规则不兼容可以使用PRODUCT_COPY_FILES \ path/EShareServer.apk:system/system_ext/app/EShareServer/EShareServer.apk这会把 APK 按原样复制到镜像指定位置。3.LOCAL_SYSTEM_EXT_MODULE不能跨版本想当然Android 14 模块中可能使用LOCAL_SYSTEM_EXT_MODULE : true它用于表达模块应安装到system_ext分区。但 Android 9 的构建系统不一定完整支持该变量。即使源码中写了它最终 APK 仍可能进入/system/app而不是/system/system_ext/app所以变量写在Android.mk中不等于最终路径一定符合预期。必须检查实际构建产物。4. 如何确认 APK 最终落在哪个分区常用检查文件out/target/product/product/installed-files.txt out/target/product/product/installed-files-system.txt out/target/product/product/installed-files-vendor.txt也可以直接搜索find out/target/product/product -iname *EShare*板端检查adb shell pm path com.eshare.receiver.tv adb shell ls -l /system/app adb shell ls -l /system/system_ext/app adb shell ls -l /vendor/app如果源码配置和最终产物不一致应优先检查产品文件是否真正includePRODUCT_PACKAGES条件是否满足目标模块是否被其他配置覆盖out目录是否残留旧产物当前 lunch 目标是否正确。5. 跨版本移植的正确顺序建议按照以下顺序操作确认 Android 版本和产品目标 ↓ 找到当前版本的产品配置入口 ↓ 确认可用的构建规则 ↓ 决定使用模块编译还是 PRODUCT_COPY_FILES ↓ 确认目标分区和安装路径 ↓ 查看 installed-files 产物 ↓ 烧录后通过 pm path 验证不要直接把 Android 14 的Android.mk复制到 Android 9也不要只根据源码变量判断 APK 是否进入了目标分区。

相关新闻

AMC-WebUI安全指南:多Key轮询、BYOK原则与自托管代理的风险边界完全清单

AMC-WebUI安全指南:多Key轮询、BYOK原则与自托管代理的风险边界完全清单

AMC-WebUI安全指南:多Key轮询、BYOK原则与自托管代理的风险边界完全清单 【免费下载链接】AMC-WebUI 面向 Gemini 的 Local-First AI 工作流 WebUI,集成多模态聊天、Canvas、文件处理、实时搜索、代码执行与高级推理。 项目地址: https://gitcode.com/…

2026/11/13 13:54:42 阅读更多 →
如何快速上手microservice-kafka:Java + Maven + Docker开发环境搭建与首次运行分步教程

如何快速上手microservice-kafka:Java + Maven + Docker开发环境搭建与首次运行分步教程

如何快速上手microservice-kafka:Java Maven Docker开发环境搭建与首次运行分步教程 【免费下载链接】microservice-kafka Demo to show how Apache Kafka can be used for communication between microservices 项目地址: https://gitcode.com/gh_mirrors/mi/m…

2026/11/11 9:23:13 阅读更多 →
.well-known/graph-api 背后的玄机:fb-instant-articles 的 OAuth 令牌与 RSA 签名安全设计完全解析

.well-known/graph-api 背后的玄机:fb-instant-articles 的 OAuth 令牌与 RSA 签名安全设计完全解析

.well-known/graph-api 背后的玄机:fb-instant-articles 的 OAuth 令牌与 RSA 签名安全设计完全解析 【免费下载链接】fb-instant-articles Archived (see Readme). Enable Facebook Instant Articles on your WordPress site. 项目地址: https://gitcode.com/gh_…

2026/10/24 4:31:36 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻