在ubuntu上解包RK3288固件
文章目录
- 前言
- 工具准备
- 解包固件
- 解包update.img
- 挂载稀疏镜像
- 回包稀疏镜像
- 回包系统镜像
前言
在Windows瑞芯微有官方解包工具FwFactoryTool
可用,修改固件比较方便,但为了更好的了解固件的组成,手动来操作一次这个过程还是很有必要的。
下面试试先在ubuntu上尝试该过程,windows下也应该是可以的。
工具准备
要完成该过程需要这些工具:afptool
, img_unpack
, img_maker
, mkkrnlimg
, simg2img
, make_ext4fs
其中前4个需要自己编译,可从github仓库克隆代码并编译:
git clone https://github.com/TeeFirefly/rk2918_tools.git
cd rk2918_tools
make
为了方便使用,编译后可执行文件放入/usr/local/bin
下:
sudo cp afptool img_unpack img_maker mkkrnlimg /usr/local/bin
而后两个工具可以通过包管理器安装:
sudo apt-get install android-tools-fsutils
上面步骤全部完成后就做好准备了
解包固件
使用img_unpack
将固件解包:
img_unpack rk3288-firmware.img img
执行完毕后会输出固件基本信息,并在当前目录下应当为出现img
文件夹,cd
进去查看即可发现固件解包后得到的两个文件:loader.img
, update.img
可知,第一个是loader
,而其他部分在undate.img
下,所以仍然需要继续解包。
解包update.img
解包update.img要使用afptool
:
afptool -unpack update.img update
命令执行完毕后,会出现一个update
文件夹,里面存放着各个分区的镜像。
这些镜像一般都是 安卓稀疏镜像(android sparse image) ,这些镜像无法被直接挂载修改,因此需要转换。
也可以通过file
工具来查看镜像格式。
挂载稀疏镜像
由于稀疏镜像无法挂载,因此要使用simg2img
工具将从update.img取得的分区转换为普通的ext4镜像:
#将system.img转为ext4镜像
simg2img system.img system.img.ext4
然后挂载镜像即可修改
#挂载到/mnt/androidsystem/下
sudo mount system.img.ext4 /mnt/androidsystem/
回包稀疏镜像
在修改完毕后,就可以使用make_ext4fs
工具来回包镜像了:
#将/mnt/androidsystem/打包成system.img
make_ext4fs -s -l 1536M system.img /mnt/androidsystem/
其中-s
代表稀疏镜像, -l
指定分区大小,分区大小需要根据parameter
表来,若不修改则应维持与原本一致。
可以通过解包update.img
后得到的parameter.txt
计算出分区大小,因为该文件描述的是扇区,可通过下面方法快速计算:
#利用shell可快速计算,如system分区大小为0x00200000
echo $((0x00200000 * 512 / 1024 / 1024)M)
如果修改过后的镜像超出原本parameter.txt
文件描述的分区大小,则必须对应的修改该文件,修改时注意分区均需4M对齐。
回包系统镜像
首先要回包成update.img
,这里需要先将parameter.txt
复制为parameter
文件,然后再依次使用afptool
与img_maker
回包:
#回到img目录下,将update中解包的parameter.txt复制到本目录
cp update/parameter.txt parameter#将update回包
afptool -pack . ../newUpdate.img#与loader.img一起打包成最终的系统固件, -rk33是平台参数,解包时可见该参数
img_maker -rk33 loader.img newUpdate.img rk3288_firmware.img
一切顺利的话,现在就应该得到一个rk3288_firmware.img
的固件啦。
在ubuntu上解包RK3288固件相关推荐
- linux系统软件包依赖关系,Ubuntu解决包依赖关系
Ubuntu解决包依赖关系: 出现的错误有: 有一些软件包无法被安装.如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的.该版本中可能会有一些您需要的软件 包尚未被创 ...
- Linux 下解包华为固件包UPDATE.APP
注:本文所有图片保存EverNote 印象笔记(www.yinxiang.com)当中, 如果有其帐号登录后即可查看全部图片. 如没有帐号可用e-mail >>点击注册免费印象笔记 Lin ...
- 在Ubuntu上解挂U盘
在Ubuntu上解挂U盘,当然也可以在Gnome中点击..但想着用shell 一般gome 也会自动把U盘挂载.. 但是.. 也可以按下面的步骤. 1.sudo fdisk -l 找到你的U盘,如无意 ...
- 高通固件解包IPQ6000固件解包
Ubuntu18 Flash芯片型号是 GD9FS1G8F2AMGI,兆芯工业级 128Mx8,2K+128B Page,128K+8K Block. 芯片ID是 C8 A1 80 15 42 加载m ...
- Ubuntu .deb包安装方法
使用apt-get方法安装的软件,所有下载的deb包都缓存到了/var/cache/apt/archives目录下了,所以可以把常用的deb包备份出来,甚至做成ISO工具包.刻盘,以后安装Ubuntu ...
- ubuntu 16.04修复固件刷新失败的LimeSDR-USB V1.4
前两天用gnuradio做实验的时候发现报错说固件版本低,并提示使用LimeUtil --update升级,但是升级的过程中失败,至此板子已经无法被计算机识别.或使用lime suite有下列问题: ...
- 安装ubuntu系统操作系统详细流程、ubuntu管理包命令apt和dpkg命令详细说明、一键部署openstack环境、DBeaver下载驱动报错和登录提示RSA public key.. 解决方法
文章目录 安装ubuntu操作系统 安装vmware,我这的版本是16 . 创建虚拟机 设置网络.[你没有啥特殊需求,忽略该步骤] 开启处理器虚拟化 开始安装ubuntu系统 配置sshd和修改roo ...
- 勘智K210-打包Kfpkg固件及其使用
K210 的固件包主要有两种格式: .bin 和 .kfpkg , .kfpkg 可以包含多个.bin文件或者模型文件. 本文主要介绍如何制作kfpkg文件及其使用. 烧录 .bin 或者 .kfpk ...
- 嵌入式stm32f411系列-- --学前准备(mdk+器件支持包+stm32cubemx+固件包)
开篇先说一句废话···· 本旺名字叫萨摩耶,,Please 叫我旺财,,,哈哈,招财进宝嘛! 开篇 之前学习了51单片机最基础的Stc89c52,因为一些原因,需要提前学习stm32,加上专业也会学习 ...
最新文章
- Python基础教程学习笔记:第一章 基础知识
- JSTL (标准标签库)
- Nacos安装和服务注册
- clear nTotal nNum=1计算机考试,信息学奥赛常考算法——模拟法
- 【渝粤教育】电大中专Office办公软件 (4)作业 题库
- centos65编译安装lamp和lnmp
- log4j日志文件 log4j.xml log4j.properties配置
- 服务器x不会下载mysql_MySQL_解决MySQL数据库死掉以及拒绝服务的方法,从Mysql 5.x的某个版本之后,MySQ - phpStudy...
- Web后端学习笔记 Flask(8) WTForms 表单验证,文件上传
- 【笔记】vim如何删除重复行
- redis,ruby安装
- 实验二 任务二 体重测量
- 游戏开发入门系列(目录)
- centos7下安装flex,bison
- html中div是什么意思
- 微信小程序之解决background-image属性失效
- ssh登录极路由后台_各品牌路由器登录网址大全 路由器默认用户名/密码
- 小程序中 使用canvas 生成推广图片——wepy框架
- C++入门第一阶段——基础篇
- python : time模块weekday()
热门文章
- 人工智能和人类智能的本质区别是什么(一)
- java 组合实现汽车类 问题描述:一辆Car有(has)四个轮子(Wheels)和一个发动机(Engine)。现在要求用组合方法设计类Car、类Wheel和类Engine。
- 【MindSpore】DCGAN生成漫画头像-----利用华为云modelarts云终端实现
- 8in1模拟器v2模拟飞行_重新想象飞行模拟器:过去和现在
- _stdcall是什么?
- mysql update join 更新_mysql多表join时候update更新数据的方法 | 很文博客
- c++实现汉诺塔(图文并茂)
- DELLR420配置RAID
- 女朋友撒娇让我教她HashMap
- python 恶搞(仿粽子写的)