记录一次瑞芯微rk3128固件解包打包过程:以添加root权限为例

这篇具有很好参考价值的文章主要介绍了记录一次瑞芯微rk3128固件解包打包过程:以添加root权限为例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、设备和环境

设备 MSIDIGTAL-RM701
平台 瑞芯微RK3128
环境 Windows 11 Subsystem Ubuntu 20.04.5 LTS

 rk3128投影仪固件,RockChip,arm,android

 二、工具

在打包解包的过程中,我们至少需要使用瑞芯微官方提供的三个工具:afptoolimg_unpackimg_maker。可以自己通过源码编译,也可以使用我文章后面附上的成品,架构为linux_amd64

#拉取源码
git clone 'https://github.com/TeeFirefly/rk2918_tools.git'

#进入目录
cd rk2918_tools/

#生成
make

#将工具复制到/usr/lcoal/bin以方便调用
sudo cp afptool img_unpack img_maker mkkrnlimg /usr/local/bin

三、解包

1.解包release_update.img

从网上下载到的成品固件,我们称之为release_update.img,使用工具img_unpack将其解包为loader.imgupdate.img

#当前目录存放有:release_update.img
#第一个参数指定固件,第二个参数指定保存目录
img_unpack release_update.img img

2.解包update.img

通过afptool -unpackupdate.img解包出各个分区镜像:

#进入img目录
cd img
#当前目录内有:loader.img  update.img
#使用afptool对update.img进行解包
#指定工作模式,解包为-unpack,打包为-pack;第一个参数指定镜像位置;第二个参数指定保存目录
afptool -unpack update.img update

3.目录结构

至此,解包已经完成,返回上一级目录,列出目录结构应是如此:

jamaskii@HP-445R-G6:/mnt/d/rk3128/demo/img$ cd ../
jamaskii@HP-445R-G6:/mnt/d/rk3128/demo$ tree .
.
├── img
│   ├── loader.img
│   ├── update
│   │   ├── Image
│   │   │   ├── MiniLoaderAll.bin
│   │   │   ├── boot.img
│   │   │   ├── kernel.img
│   │   │   ├── misc.img
│   │   │   ├── parameter.txt
│   │   │   ├── recovery.img
│   │   │   ├── resource.img
│   │   │   ├── system.img
│   │   │   └── uboot.img
│   │   ├── RESERVED
│   │   └── package-file
│   └── update.img
└── release_update.img

3 directories, 14 files

四、修改

本次以给固件加入ROOT权限为例,阐述修改system分区的一些步骤。

1.镜像扩容

在修改Image/system.img的内容之前,首先需要对其进行扩容,不然在后续的操作中大概率会遇到空间不足的错误警告:

jamaskii@HP-445R-G6:/mnt/d/rk3128/demo/img/update$ sudo cp '/mnt/d/rk3128/supersu/armv7/su' '/mnt/system/xbin'
cp: error writing '/mnt/system/xbin/su': No space left on device

以对其扩容128MB为例:

#填充128MB数据
dd if=/dev/zero bs=1M count=128 >> Image/system.img

#检查镜像错误并修正、扩容
e2fsck -f Image/system.img
resize2fs Image/system.img

2.镜像挂载

解包出来的Image/system.img本质上是一个ext4文件系统的镜像,所以修改的思路是将其挂载在/mnt/system,当然其他位置也可以,然后进去对内容进行修改:

#创建挂载点
sudo mkdir /mnt/system

#进入img/update/目录
cd img/update/

#当前目录内有:Image  RESERVED  package-file
#将Image/system.img挂载到/mnt/system
sudo mount Image/system.img /mnt/system

3.增加su二进制文件

到SuperSU官网下载其最新的zip包,解压,查看/META-INF/com/google/android/update-binary脚本,分析需要进行哪些操作。

首先是根据判断API等级:

# binary        ARCH/path   build type      API
#
# arm-v5te      arm         ndk non-pie     7+
# x86           x86         ndk non-pie     7+
#
# x86           x86         ndk pie         17+   (su.pie, naming exception)
# arm-v7a       armv7       ndk pie         17+
# mips          mips        ndk pie         17+
#
# arm64-v8a     arm64       ndk pie         20+
# mips64        mips64      ndk pie         20+
# x86_64        x64         ndk pie         20+

RK3128属于arm-v7,所以匹配API17+

然后查看对应的操作有哪些。由于篇幅限制,这里只节选API17+部分:

# API   source                        target                              chmod
#
# 7-19  common/Superuser.apk          /system/app/Superuser.apk           0644
# 20+   common/Superuser.apk          /system/app/SuperSU/SuperSU.apk     0644
#
# 17+   common/install-recovery.sh    /system/etc/install-recovery.sh     0755
# 17+                                 /system/bin/install-recovery.sh     0755
#
# 7+    ARCH/su                       /system/xbin/su                     *3
# 7+                                  /system/bin/.ext/.su                *3
# 17+                                 /system/xbin/daemonsu               0755
# *3: 06755 if API < 18, 0755 if API >= 18
#
# 17+   common/99SuperSUDaemon *6     /system/etc/init.d/99SuperSUDaemon  0755
# 17+   'echo 1 >' or 'touch' *7      /system/etc/.installed_su_daemon    0644
# *6: only place this file if /system/etc/init.d is present
# *7: the file just needs to exist

五、打包

首先需要将修改后的分区卸载:

sudo umount /mnt/system

1.打包新的update.img

#当前目录内有Image  RESERVED  package-file parameter
#设定工作模式为打包-pack,第一个参数为解包后的目录(包含Image/和package-file);第二个参数为保存位置
afptool -pack . ../update_new.img

如果打包工具抛出如下错误:

jamaskii@HP-445R-G6:/mnt/d/rk3128/demo/img/update$ afptool -pack . ../update_new.img
------ PACKAGE ------
Can't open file: ./parameter
Pack failed

则是在当前目录内找不到parameter,我们需要将Image/parameter.txt复制到当前目录,并命名为parameter

cp Image/parameter.txt parameter

2.打包新的release_update.img

#回到上级目录
cd ../

#此时目录内有loader.img  update  update.img  update_new.img
#其中update_new.img是我们新打包出来的镜像
#设置芯片类型为rk3xx系列,第一个参数为loader.img位置;第二个参数为update.img位置;第四个参数为保存位置
img_maker -rk31 loader.img update_new.img ../release_update_new.img

说一下这里的打包工具img_maker,看下他的帮助信息:

usage: img_maker [chiptype] <loader> <old image> <out image>
chiptype:
    -rk29
    -rk30
    -rk31
    -rk32
    -rk33

If chiptype is missing, it is default to -rk32.

一定要记得指定芯片类型,如果忘记了,则按默认的rk32xx系列打包。到刷机时如果目标设备不是rk32xx,则会验证出错。

打包完成,我们就得到了新的固件'../release_image_new.img',可以用这个固件进行刷机了。

六、值得注意的点

1.区分release_update.imgupdate.img

前者是直接用来刷机的固件,后者仅仅包含各个分区的镜像文件。他们的关系如图:

rk3128投影仪固件,RockChip,arm,android

2.在打包release_update.img时记得指定芯片类型

否则做出来的包可能会导致刷机失败。

七、附件

工具:[蓝奏云]rk3128_firmware_tools_linux_amd64.zip文章来源地址https://www.toymoban.com/news/detail-816507.html

到了这里,关于记录一次瑞芯微rk3128固件解包打包过程:以添加root权限为例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 瑞芯微RK3568开发:烧录过程

    进入rk3568这款芯片的烧录模式共有3种方式,先讲需要准备的环境要求。 1、配套sdk版本的驱动DriverAssitant_vx.x.x和RKDevTool_Release_vx.x,版本不对应可能无法烧录,建议直接在sdk压缩包里获取; 2、如果正确安装DriverAssitant_vx.x.x,且usb硬件连接完好,电脑端会有主线驱动识别ok的提

    2024年02月15日
    浏览(61)
  • 瑞芯微RK3568驱动配置之十串口

    基于飞凌的开发板设计,这里需要使用到RK3568的串口,开发板只开放了UART2、UART3、UART4、UART5、UART8。查看文档,准备配置UART0、UART6、UART7、UART9。一共9个串口使用。剩下的一个串口被网口1占用,暂时不修改。 修改设备树DTS文件配置。 地址: /home/forlinx/3568/OK3568-linux-source/k

    2024年02月13日
    浏览(101)
  • 瑞芯微RK3568开发:GPIO实践篇

            SOC平台各类GPIO构建原理是大道一统的,在各个诸如状态、数据、中断和屏蔽等寄存器具体含义用法,有少许差异。玩好RK的GPIO,需要先理解这类通用接口的框架。         介绍RK3568的GPIO,认为讲2类重要地址和记录几种编程实践方法即可。 一、2类地址         RK

    2024年02月10日
    浏览(73)
  • OpenHarmony实战:瑞芯微RK3566移植案例(中)

    上篇文章:OpenHarmony实战:瑞芯微RK3566移植案例(上) 常见的INPUT设备有键盘、鼠标、游戏杆、Touch Screen等。Touch 设备与主机通讯采用标准 I2C 总线,触屏 IC 提供中断支持,提高了触屏数据的实时性。本项目的触摸屏器件IC 为 GT911。 驱动框架模型 INPUT驱动模型 INPUT 驱动模型核

    2024年04月23日
    浏览(49)
  • 瑞芯微rk3568移植openharmony3.1(鸿蒙)

    openharmony的移植推荐使用Ubuntu18.04,需要安装的依赖库文件。 获取openharmony官方源码。 下载完成后,可以改一下调试口的波特率,因为默认的是1500000,串口工具会有乱码,或者出现无法输入的问题,修改为115200。可以直接修改脚本文件。脚本文件有规则限制,只改一下波特率

    2024年02月11日
    浏览(59)
  • 迅为RK3588开发板-基于瑞芯微RK3588摄像头方案

    硬件: RK3588开发板+摄像头   MIPI摄像头:   1.1 硬件连接 RK3588 底板上有四个摄像头接口,如下图所示,此四个接口均可连接摄像头 ov5695 和 摄像头 ov13850。   摄像头模块连接硬件时要将模块对准插槽缺口处,J1 接口连接摄像头模块如下图所示:   J2 接口连接摄像头模块

    2024年02月09日
    浏览(60)
  • 瑞芯微RK3576 |牵头AIoT技术潮流,全新震撼来袭!

    深圳触觉智能科技有限公司 (industio.cn) 在快节奏的人工智能物联网(AIOT)领域,瑞芯微(Rockchip)全新推出的RK3576处理器横空出世。RK3576以其领先技术和卓越性能,为智能设备注入了无限的可能性,实现了更加智能和互动的体验。 下面让我们谈谈这款瑞芯微旗下最新的AIOT芯

    2024年04月11日
    浏览(50)
  • 史上最全! 瑞芯微RK3568核心板评估板资源分享!

    高性能处理器 :采用四核A55架构CPU,G52 GPU;内置NPU,可提供1T算力 高可靠性设计 :支持DDR及CPU Cache全链路ECC 内置自研ISP图像处理器 :8M@30fps处理能力,强大的HDR功能,支持畸变矫正、去雾、噪点消除等功能 丰富的显示、外设及拓展接口 :内置HDMI/eDP/LVDS/MIPI/RGB/T-CON显示接口

    2023年04月27日
    浏览(60)
  • 瑞芯微RK3568开发板保姆级护航入门学习嵌入式

    专为3568编写|迅为原创|拒绝网络拼凑 20+个手册2800+页手册进行结构分层适用于学习与开发 为了方便大家清晰快速的学习,迅为iTOP-3568开发板手册资料全面升级,对手册内容进行了结构分层,共计20+个文档,超2800+页的资料专为iTOP-3568开发板编写。适用于各种层面的学习者学习

    2024年02月14日
    浏览(55)
  • 瑞芯微RK3568/RK3588平台YOLOV5实时视频算法的部署小白教程

    本文实现整体的部署流程比较小白,首先在PC上分别实现工程中的模型仿真推理、yolov5-pytorch仿真推理、自己训练yolov5模型仿真推理,完成仿真之后再在板端分别实现rk提供模型的板端推理、yolov5-pytorch板端推理、自己训练的yolov5模型板端推理,最后实现自己训练的yolov5模型实

    2024年02月06日
    浏览(85)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包