rkflashkit的安装与使用
声明
版权声明:博文为原创内容,可以转载或引用,但须在明显位置标明原文作者和出处,未经同意不得擅自修改本文内容!博客地址:http://blog.csdn.net/luzhenrong45/article/details/62043804
摘要
rkflashkit 是一个用于烧写瑞芯微设备的开源图形界面版本软件。它不能烧写bootloader或者parameter,只支持烧写内核和其他分区,但是它支持备份这些分区。因此可用于将存储在flash芯片中的各个分区dump到文件中来。
1. rkflashkit安装
rkflashkit 是一个用于烧写瑞芯微设备的开源图形界面版本软件。它不能烧写bootloader或者parameter,只支持烧写内核和其他分区,但是它支持备份这些分区。因此可用于将存储在flash芯片中的各个分区dump到文件中来。
首先需要先安装rkflashkit
sudo apt-get install build-essential fakeroot
git clone https://github.com/linuxerwang/rkflashkit
cd rkflashkit
./waf debian
sudo apt-get install python-gtk2
sudo dpkg -i rkflashkit_0.1.2_all.deb
2. rkflashkit使用
使用rkflashkit需要先让设备进入bootloader状态,即刷机状态。rkflashkit有图形界面和命令行两种模块:
(1)图形界面
sudo rkflashkit
(2)命令行模式
$ rkflashkit --help
Usage: <cmd> [args] [<cmd> [args]...]
part List partition
flash @<PARTITION> <IMAGE FILE> Flash partition with image file
cmp @<PARTITION> <IMAGE FILE> Compare partition with image file
backup @<PARTITION> <IMAGE FILE> Backup partition to image file
erase @<PARTITION> Erase partition
reboot Reboot device
For example, flash device with boot.img and kernel.img, then reboot:
sudo rkflashkit flash @boot boot.img @kernel.img kernel.img reboot
比如查看各个分区的大小和起始地址,偏移地址,只需要输入rkflash part就可以一目了然:
recovery$ sudo rkflashkit part
Found devices:
0x2207:0x310b
============= 2017-03-14 10:53:57 ============
Reading flash information
Loading partition information
CMDLINE:console=ttyFIQ0 androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(misc),0x00004000@0x00004000(kernel),0x00008000@0x00008000(boot),0x00008000@0x00010000(recovery),0x000C0000@0x00018000(backup),0x00040000@0x000D8000(cache),0x00100000@0x00118000(userdata),0x00002000@0x00218000(kpanic),0x00100000@0x0021A000(system),-@0x0033A000(user)
Partitions:
misc (0x00002000 @ 0x00002000) 4 MiB
kernel (0x00004000 @ 0x00004000) 8 MiB
boot (0x00008000 @ 0x00008000) 16 MiB
recovery (0x00008000 @ 0x00010000) 16 MiB
backup (0x000C0000 @ 0x00018000) 384 MiB
cache (0x00040000 @ 0x000D8000) 128 MiB
userdata (0x00100000 @ 0x00118000) 512 MiB
kpanic (0x00002000 @ 0x00218000) 4 MiB
system (0x00100000 @ 0x0021A000) 512 MiB
user (0x00B56000 @ 0x0033A000) 5804 MiB
Done!
rkflash可用于备份各个分区,比如system, boot, kernel, recovery等,下面以 cache分区为例,介绍一下如何在不破坏现场环境的情况下将cache分区dump到文件cache.img来并取出升级日志:
(1)dump cache分区
sudo rkflashkit backup @cache cache.img
(2)在PC上以ext4格式挂载cache镜像
sudo mount -t ext4 cache.img /mnt/cache-dir/
(3)从cache-dir目录取出log日志文件
/mnt/cache-dir/recovery/last_log
/mnt/cache-dir/recovery/last_install
/mnt/cache-dir/recovery/last_locale
当然,rkflashkit也可当成刷机工具来使用,比如,现在想将system.img烧写到 system分区,则可用以下命令:
sudo rkflashkit erase @system system.img
4. 再啰嗦几句
rkflashkit是个好东西,对于排查盒子升级问题作用很大。由于可以dump flash各个分区,平时分析system分区文件丢失也经常用到,当然,还可以当成刷机工具使用,可谓是RK平台的功能强大的工具。
修改说明
作者 | 版本 | 修改时间 | 修改说明 |
---|---|---|---|
WalkAloner | V1.0 | 2017/03/04 | 第一版 |
WalkAloner | V1.1 | 2019/07/26 | 图床搬迁 |