浅谈Amlogic S905L3A L3AB L3B 盒子桌面和系统移植
In this blog post, we explore the process of transferring an Android TV launcher and system environment from one Amlogic S905L3-based TV box to another with identical hardware. Whether you're aiming t
Abstract:
In this blog post, we explore the process of transferring an Android TV launcher and system environment from one Amlogic S905L3-based TV box to another with identical hardware. Whether you're aiming to replace a buggy default launcher or achieve a full system clone, we outline two practical approaches: a complete firmware migration and a lightweight launcher-only transplant. The post also covers essential tools, potential pitfalls, and tips for maintaining stability and compatibility throughout the customization process. Perfect for tinkerers and power users looking to take control of their Android box experience.
将盒子A的桌面和系统移植到盒子B上,属于刷机和定制ROM相关的进阶操作,涉及系统提取、适配、打包、签名等步骤。以下是一个通用的流程和所需工具,仅供参考,具体操作还需根据芯片平台(如 Amlogic、Rockchip、Allwinner 等)和盒子硬件差异做出调整:
✅ 一、准备工作
-
确认两个盒子的芯片型号和架构
-
移植前必须确认 A 和 B 的 SoC 是相同或高度相似的,比如都是 Amlogic S905L3。
-
不同芯片或不同 WiFi/BT 芯片,驱动兼容性是最大难点。
-
-
准备刷机工具和固件处理工具
-
Amlogic 平台:Amlogic USB Burning Tool、Customization Tool、Firmware Extraction Tool(如
img_kitchen,aml_image_v2_packer/unpacker) -
提取工具:
simg2img,img2simg,mount,7-Zip,Ext2Explore,或者 Windows 下用DiskGenius。
-
-
获取 A 盒子的原始固件或者完整 dump(.img 文件)
✅ 二、提取系统和桌面组件(从 A 盒子)
-
解包 A 盒子的固件
-
使用固件解包工具解开
.img,获取system.img、boot.img、vendor.img等。
-
-
挂载或转换镜像文件
-
使用
simg2img将 sparse image 转换为 raw image,再 mount 或使用工具查看文件内容。
-
-
提取桌面组件
-
通常桌面是一个系统级 App,比如
/system/priv-app/Launcher或/system/app/KukanLauncher。 -
一般需要提取对应 APK、so 库(如
/lib或/lib64下)、配置文件等。
-
-
备份系统配置(如有修改)
-
/system/build.prop -
/vendor目录下的相关配置项 -
init脚本(在boot.img里,可能需要解包 boot)
-
✅ 三、移植到 B 盒子固件
-
解包 B 盒子的官方固件
-
获取官方或第三方刷机包,解包以便替换组件。
-
-
替换桌面相关组件
-
将提取的 Launcher APK 和资源复制到 B 盒子系统的相应目录。
-
确保权限、SELinux 上下文、签名等一致。
-
-
必要时移植 system 分区整体内容
-
若系统高度兼容(同一芯片组),可尝试直接用 A 的 system.img 替换 B 的 system.img,或合并 system 内容(风险较高)。
-
-
修改
build.prop及启动参数-
根据桌面需求适配 DPI、默认 Launcher、输入法、启动项等。
-
-
(可选)修改 boot.img
-
若启动脚本与桌面耦合,可解包
boot.img修改init.rc或init.<platform>.rc脚本。
-
✅ 四、重打包、签名、刷入测试
-
重打包镜像文件
-
用
mkbootimg、img2simg、Amlogic Customization Tool 等工具重新打包。
-
-
刷入设备测试
-
使用 USB Burning Tool 或卡刷等方式刷入测试固件。
-
-
调试与优化
-
检查是否正常启动、是否能回到桌面、是否有 FC(强制关闭)等问题。
-
若桌面卡死或无法设为默认,需查看 Logcat 定位问题。
-
🔧 其他注意事项
-
如果 A 的桌面依赖某些服务(如定制的
SystemUI、后台服务),可能也需要一并移植。 -
如果桌面绑定某厂商账号服务,无法使用时需考虑替换或屏蔽。
-
WiFi/蓝牙、遥控器驱动等都可能因硬件不同而不兼容,需从 B 的固件中保留。
🎁 工具包:
| 工具 | 用途 |
|---|---|
| Amlogic Customization Tool | 解包/打包/修改 Amlogic 固件 |
| USB Burning Tool | 刷机工具 |
| simg2img / img2simg | Android 镜像转换 |
| Ext2Explore / DiskGenius | 查看 Linux 分区文件 |
| mkbootimg / unpackbootimg | 解包和重打包 boot.img |
| Android Kitchen / ROM Kitchen | 自动化 ROM 修改 |
既然 A 和 B 两个盒子都是 Amlogic S905L3,而且硬件一致,那移植工作会轻松很多。以下是针对相同硬件 Amlogic S905L3 平台的精简实战步骤,把 A 盒子的桌面和系统“搬家”到 B 盒子。
✅ 思路:
直接把 A 的 system.img、vendor.img、boot.img 移植到 B 的固件里重新打包刷入,基本就能跑起来;如只换桌面,就提取 A 的桌面 APK 和依赖,替换 B 盒子的默认桌面。
🧰 方法一:整套系统搬过去(推荐)
步骤:
-
解包 A 的固件:
-
用 Amlogic Customization Tool 打开 A 的刷机包
.img。 -
解出
system.img、boot.img、vendor.img(如果有)。
-
-
打开 B 的固件刷机包:
-
同样用 Customization Tool 解包。
-
替换 B 的
system.img、boot.img、vendor.img为 A 的对应文件。
-
-
检查 dtb(设备树)一致性:
-
通常在
boot.img或dtb.img中。 -
如果两个盒子硬件一致,直接使用 A 的即可;不一致要保留 B 的 dtb。
-
-
保存修改,打包成刷机包:
-
使用 Customization Tool 保存并生成新的
.img文件。
-
-
用 USB Burning Tool 刷入 B 盒子:
-
成功后 B 盒子会和 A 盒子表现一致,桌面也跟着“搬”过去了。
-
🧰 方法二:只移植桌面(Launcher)
步骤:
-
解包 A 的
system.img(或直接提取运行设备中的文件):-
找到桌面 APK,比如
/system/priv-app/KukanLauncher或/system/app/Launcher3等目录。 -
提取整个文件夹,包括 APK 和
lib(如果有)。
-
-
获取依赖组件:
-
桌面有可能依赖
/system/lib或/system/lib64下的特定.so。 -
查看
logcat日志或用工具分析依赖(如用aapt、apktool等)。
-
-
解包 B 的
system.img:-
替换掉默认桌面 Launcher 的目录(确保包名一致或者设默认)。
-
-
设定默认桌面:
-
修改
/system/build.prop:ro.launcher.packagename=com.xxx.launcher ro.launcher.classname=com.xxx.MainActivity -
或者直接在
init.rc、default.prop或系统设置中指定。
-
-
打包回
system.img并重新制作刷机包,刷入测试。
🔍 可能遇到的问题 & 解决:
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 启动卡 Logo | dtb 不兼容 / boot.img 错误 | 保留 B 盒子的 dtb 或 boot.img |
| 桌面闪退 / 黑屏 | 桌面缺依赖或签名不一致 | 用 logcat 查错,补依赖库或重签名 |
| 无法设默认桌面 | 桌面优先级问题 / 权限问题 | 确保放入 /priv-app,权限设为 644,owner 为 root:root |
| 遥控器失效 | remote.conf 不匹配 | 拷贝 A 的 /etc/remote.conf |
🧪 提示:
-
如果有 root 权限,也可以在系统运行状态下用
adb root && adb remount直接 push APK 来测试。 -
若担心风险,可先制作 卡刷包,放 TF 卡测试,失败了不会变砖。
🧰 实用工具推荐(Windows 下):
-
Amlogic Customization Tool v9.8.0+(你已经在用 👍)
-
USB Burning Tool
-
ImgExtractor / ROM_Kitchen
-
DiskGenius(直接打开
system.img查看内容) -
aapt / apktool(分析 APK 信息)
更多推荐



所有评论(0)