Linux网络机顶盒rom,Amlogic 电视盒子修改Rom包,升级
内容目录
第一次接触电视盒子的开发,遇到一些坑,这里记录下Rom包修改和升级的方法。
这边使用的硬件是:
Amlogic S905x 2GBx16GB
准备工作:
1、ROM包(aml_upgrade_package.img)
2、Customization Tool(aml解压包工具)
3、USB_Burning(烧入工具)
修盖Rom包:
第一步:解压
打开Customziation tool工具:
c98860558072
Customziation_tool.PNG
点击加载,选择解压项目,如图:
c98860558072
客制化选项.PNG
选择需要解压的aml_upgrade_package.img。完成解压。
查看文件包:
解压成功后,能获取到“产品信息”,“基本信息”,“系统APK”等信息。
这里我们只说明如何添加系统内置apk。
我们点开“高级” –> “System”
打开文件夹:(如下图)
c98860558072
android系统结构.PNG
文件结构:
\system\app
在这个文件夹下的程序为系统默认程序(如:信息、音乐播放器、相机等),自己安装的软件将不会出现在这里,而是\data\app文件夹中。
\system\bin
这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件(命令)
\system\etc
从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。
\system\fonts
字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库,从T-Mobile G1上可以清楚的看到显示简体中文正常,其中DroidSansFallback.ttf文件大小 。
\system\framework
framework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。
\system\lib
lib目录中存放的主要是系统底层库,一些so文件,如平台运行时库。
\system\media\system\media\audio
铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音。
\system\sounds
默认的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件。
\system\usr
用户文件夹,包含共享、键盘布局、时间区域文件等。
添加三方内置apk:
我们放进内置系统apk一般都需要用到系统权限。
可以参考:http://www.jianshu.com/p/47265c8899b5 签名自己的apk包。
把apk包放入/app文件夹中,如果有so文件,也一并放入,如图:
c98860558072
放入apk.PNG
** lib文件夹中放入的就是so文件(如果不放,apk启动会失败) **
压缩:
这里我遇到了一个坑,在压缩之前,需要替换Uboot文件。
点击“高级” –> “Uboot”
c98860558072
替换文件.PNG
最后点击“压缩”,打包完成。
烧录固件:
打开USB_Burning_Tool:
c98860558072
USB_Burning_tool.PNG
点击“文件”–>“导入烧入包”
其他烧录配置使用默认就好,点击“开始”,等烧录成功后点击“停止”。完成烧录。
连接硬件
有可能会出现硬件连接不上问题。
1、检查线是否有问题
2、按着‘reset’键不放,再插入usb线,等待几秒。
开机崩溃,进入boot界面
c98860558072
boot 界面.jpg
开始我修改过的Rom包一直都会出现这个问题。
遇到这种情况,一定要使用我提供的rom包,在压缩之前替换Uboot文件。
Amlogic解包打包的工具有两个:
-
Customization tool , windows下面运行的, 不过很久没更新, 用起来会有错误出现.
-
amlogic tool kit , linux 下面运行的, github上面一直再维护:
https://github.com/natinusala/linux-amlogic-toolkit
==================本贴是基于Linux的tool去解包打包image文件===============
- 虚拟机安装
安装虚拟机, VMWare , 安装centOS .
配置网络, 使虚拟机能连接外网. 最简单就是 查看虚拟网络配置的 NAT 和 DHCP , 手动更改你的cnetOS的网络为静态IP.
- Tool build
到 github上面下载最新的toolkit , 拷贝到cnetOS 的桌面.
仔细查看guthub下面的how to use 安装所有需要的库和工具
gcc, zlib1g-dev, libblkid-dev, i386 …
所有的工具安装完成之后, 运行 tool目录 ./bin/build 文件, 确认运行完成之后, 没有任何错误出现.
- 解包
拷贝线刷的image到虚拟机
运行 ./bin/unpack ***.img , tool会自动解包image文件, 并且挂在system目录.
编辑system目录里面的文件.
- 打包
运行 ./bin/repack .img, tool会自动打包成.img文件.
- 线刷工具
下载USB burn tool
文件->选择 你的image 文件.
不要选择 “擦除Flash”
不要选择 “擦除bootloader”
点击开始
盒子USB 拔掉, 拔掉电源线, 然后重新插上USB 线, 插上电源线.
自动进入刷机模式, 开始image刷机.
PS: USB burn 上面的两个擦除每次选择, 可能有些人会忘记.
打开USB burn目录, 修改BurnCfgUI.ini文件, 按照下面修改, 就不会默认打钩了.
[EraseFlash]
Enable = false
Show = true
[EraseBootLoader]
Enable = false
Show = true
Author grabbyte
LastMod 2022-08-11