孙龙弟 发表于 2021-11-25 15:02

(首发)海思处理器hitool线刷包制作教程

在论坛看到几个评论:求高手提供XXXX机型分区表?想自己备份hitool烧录包!
当时真的想回复网友:给你分区表,你敢用吗?一旦给错了分区表,备份后再恢复系统必砖!
所以还是自己搞出分区表最有保障!有了分区表后,制作烧录包就简单了,也省了买包钱!
其实我写此贴时,也没搞过分区表,也是用他人分区表来备份、制作烧录包!所以一边制作线刷包,一边写贴,成功了就发贴,不成功就删贴(但凭经验,有很大把握)!
不多说了。。。。。。开始!

---------------------------------------------------------------------------------------------------------------------------------------

首先需要用到的工具:电烙铁、编程器!(需要拆机,使用串口TTL)
应该用远程ADB可免拆机,从来没用过远程ADB,效果如何就难说了!(远程ADB能不能获取ROOT权限,未知!)
如何焊接ttl,就不写了,,请百度!!!

---------------------------------------------------------------------------------------------------------------------------------------


1、打开puttly之类终端工具,本人用的是hitool自带的终端工具,就以hitool自带的终端来写教程!
打开hitool后,设置串号参数,如下图:


---------------------------------------------------------------------------------------------------------------------------------------
2、到我的电脑里,查看编程器端口号,如下图:


---------------------------------------------------------------------------------------------------------------------------------------

3、打开终端,点击“连接”!如下图:


--------------------------------------------------------------------------------------------------------------------------------------

4、把电脑、编程器、盒子TX\RX\GND 连接后盒子开机进入系统!


---------------------------------------------------------------------------------------------------------------------------------------

5、我们输入:su (输入su获取最高权限,海思盒子一般都是默认最高权限)
如何区分最高权限,看下图:


---------------------------------------------------------------------------------------------------------------------------------------

6、输入:cat /proc/partitions (获取所有存储器分区位置)
输入cat /proc/partitions后,得到以下信息(加上本人的说明)

major minor#blocksname

254      0   102400 zram0   说明:100m大小,运行缓冲交换区,无需备份
179      0    7299072 mmcblk0说明:6.9G大小,本地存储,无需备份备份
179      1       2048 mmcblk0p1说明:2m大小,第1区,请备份!
179      2       2048 mmcblk0p2说明:2m大小,第2区,请备份
179      3      16384 mmcblk0p3 说明:16m大小,第3区,请备份
179      4       2048 mmcblk0p4说明:2m大小,第4区,请备份
179      5       8192 mmcblk0p5说明:8m大小,第5区,请备份
179      6       8192 mmcblk0p6说明:8m大小,第6区,请备份
179      7       8192 mmcblk0p7说明:8m大小,第7区,请备份
259      0      32768 mmcblk0p8 说明:32m大小,第8区,请备份
259      1      16384 mmcblk0p9说明:16m大小,第9区,请备份
259      2       2048 mmcblk0p10说明:2m大小,第10区,请备份
259      3      40960 mmcblk0p11说明:40m大小,第11区,请备份
259      4       8192 mmcblk0p12说明:8m大小,第12区,请备份
259      5      16384 mmcblk0p13说明:16m大小,第13区,请备份
259      6   737280 mmcblk0p14说明:720m大小,第14区,请备份
259      7    1048576 mmcblk0p15说明:1024m大小,第15区,请备份
259      8    5349376 mmcblk0p16说明:5224m大小,第16区,请备份
179       24       4096 mmcblk0rpmb说明:4m大小,怀疑运存区,勿备份
179       16       4096 mmcblk0boot1说明:4m大小,怀疑动态缓冲1区,勿备份
179      8       4096 mmcblk0boot0说明:4m大小,怀疑动态缓冲0区,勿备份
   8      0   15159296 sda 说明:14804m大小,sd存储,别备份
   8      4   15159168 sda4说明:14803m大小,u盘,别备份

分区大小以kb显示,我们要以MB去写分区表,所以要换算! 转载---在线容量换算从上面内容得出,分区大小,那些分区是我们要用到的!
可这样也不知道第几区是干嘛用的,这个后面会写到的!
有些分区,看大小,猜都知道是什么分区!
比如:16区,很明显是data分区,14区是system分区!但靠猜测是不行的!
注意:不同主板,分区数量、位置、大小都不一样。所以不能用本贴分区参数去写分区表!
什么分区才是我们要用到呢:第一区到未区,比如本贴分区参数得出我们要用到第1分区到16分区!
也可以根据自己的需求,去备份分区!比如本人有时也不会去备份systme、boot、recovery,data,用他人的修修改改就能用了!
可以不备份这些分区,但一定要记录这些分区大小!

---------------------------------------------------------------------------------------------------------------------------------------

7、我们已经知道需要备份几个分区,大小,数量。但分区的名称未知!接下来,我们去查找分区名称位置!
我们去找到同型号处理器的recovery.img文件,解压recovery.img后,进入解压文件夹“etc”,etc文件夹里recovery.fstab就有分区名称位置,打开recovery.fstab文件得出以下内容!(hi3798mv300机型的分区名称位置)

# device                                        mountpointfstype
/dev/block/platform/soc/by-name/fastboot   /fastboot   emmc    defaults      defaults
比如这条分区表示:分区位置为:/dev/block/platform/soc/by-name/fastboot     分区名称为:fastboot
/dev/block/platform/soc/by-name/partition/partitionemmc    defaults      defaults
/dev/block/platform/soc/by-name/recovery   /recovery   emmc    defaults      defaults
/dev/block/platform/soc/by-name/swdevinfo/swdevinfo emmc    defaults      defaults
/dev/block/platform/soc/by-name/baseparam/baseparamemmc    defaults      defaults
/dev/block/platform/soc/by-name/pqparam    /pqparam    emmc    defaults      defaults
/dev/block/platform/soc/by-name/logo       /logo       emmc    defaults      defaults
/dev/block/platform/soc/by-name/fastplay   /fastplay   emmc    defaults      defaults
/dev/block/platform/soc/by-name/factory    /factory    emmc    defaults      defaults
/dev/block/platform/soc/by-name/boot       /boot       emmc    defaults      defaults
/dev/block/platform/soc/by-name/misc       /misc       emmc    defaults      defaults
/dev/block/platform/soc/by-name/swdb       /swdb       ext4    defaults      defaults
/dev/block/platform/soc/by-name/cache      /cache      ext4    defaults      defaults
/dev/block/platform/soc/by-name/backup   /backup   ext4    defaults      defaults
/dev/block/platform/soc/by-name/system   /system   ext4    defaults      defaults
/dev/block/platform/soc/by-name/userdata   /data       ext4    defaults      defaults
/dev/block/sda1                            /sdcard   auto    defaults      defaults


从上面得出“ /dev/block/platform/soc/by-name ”是存放我们需要的分区路径,此路径就是我们要用到的!
有些卡刷包脚本也有分区名称位置,试试去找同型号处理器卡刷包看看!

---------------------------------------------------------------------------------------------------------------------------------------

8、经过操作以上的步骤,已得出分区数量、大小、名称、位置!但还少了分区数量和分区名称的关系!
刚刚我们已得出 /dev/block/platform/soc/by-name 是主区路径,这是hi3798mv300机型的主区路径!
hi3798mv100主区路径为 : /dev/block/platform/hi_mci.1/by-name
继续在终端输入:la -al /dev/block/platform/soc/by-name得出分区数量和分区名称的关系,如下内容!

lrwxrwxrwx root   root            1970-01-01 08:00 baseparam -> /dev/block/mmcblk0p5
本人说明:以这条参数,我们看得出baseparam为第5分区
lrwxrwxrwx root   root            1970-01-01 08:00 boot -> /dev/block/mmcblk0p9
lrwxrwxrwx root   root            1970-01-01 08:00 cache -> /dev/block/mmcblk0p14
lrwxrwxrwx root   root            1970-01-01 08:00 fastboot -> /dev/block/mmcblk0p1
lrwxrwxrwx root   root            1970-01-01 08:00 fastplay -> /dev/block/mmcblk0p8
lrwxrwxrwx root   root            1970-01-01 08:00 logo -> /dev/block/mmcblk0p7
lrwxrwxrwx root   root            1970-01-01 08:00 misc -> /dev/block/mmcblk0p10
lrwxrwxrwx root   root            1970-01-01 08:00 partition -> /dev/block/mmcblk0p2
lrwxrwxrwx root   root            1970-01-01 08:00 pqparam -> /dev/block/mmcblk0p6
lrwxrwxrwx root   root            1970-01-01 08:00 recovery -> /dev/block/mmcblk0p3
lrwxrwxrwx root   root            1970-01-01 08:00 securestore -> /dev/block/mmcblk0p12
lrwxrwxrwx root   root            1970-01-01 08:00 swdb -> /dev/block/mmcblk0p13
lrwxrwxrwx root   root            1970-01-01 08:00 swdevinfo -> /dev/block/mmcblk0p4
lrwxrwxrwx root   root            1970-01-01 08:00 system -> /dev/block/mmcblk0p15
lrwxrwxrwx root   root            1970-01-01 08:00 trustedcore -> /dev/block/mmcblk0p11
lrwxrwxrwx root   root            1970-01-01 08:00 userdata -> /dev/block/mmcblk0p16


数了以上内容得出16个分区,刚好也是我们要用到16个分区参数!
这时,我们可以先制作分区表,后备份也行!当然先备份也是可行的!
那我们就先备份吧!

---------------------------------------------------------------------------------------------------------------------------------------

9、格式化u盘,盒子插上u盘!(最好用带有指示灯u盘,至少知道u盘是否传输数据)
输入:df 指令,查看u盘位置!输入:df 指令,得出以下参数

Filesystem               Size   Used   Free   Blksize
/                      981.6M   1.4M   980.2M   4096
/dev                   982.5M   128.0K   982.4M   4096
/mnt                   982.5M   0.0K   982.5M   4096
/sys/fs/cgroup         982.5M    12.0K   982.5M   4096
/mnt/secure            982.5M   0.0K   982.5M   4096
/mnt/asec            982.5M   0.0K   982.5M   4096
/tmp                   982.5M   0.0K   982.5M   4096
/tmp                   982.5M   0.0K   982.5M   4096
/mnt/obb               982.5M   0.0K   982.5M   4096
/system                991.9M   449.5M   542.4M   4096
/data                  4.9G    91.5M   4.8G   4096
/swdb                   11.7M   2.6M   9.2M   4096
/cache               697.4M   784.0K   696.7M   4096
/storage/emulated      4.9G   368.7M   4.5G   4096
/mnt/sdcard            4.9G   368.7M   4.5G   4096
/mnt/sda/sda4         14.4G    16.0K    14.4G   8192说明:根据大小判断出此位置为U盘所在位置!

---------------------------------------------------------------------------------------------------------------------------------------

10、备份所需的分区!
分区有两种备份方式,方式1:备份到U盘!方式2:用hitool备份!
我们从第1区开始备份!
第1区、名称位置关系是:fastboot -> /dev/block/mmcblk0p1,也就是第1区是fastboot分区(海思机型第1区都是fastboot分区)
直接再查看fastboot分区位置为:/dev/block/platform/soc/by-name/fastboot
因我们备份到U盘,所以也要查看一下u盘位置为:/mnt/sda/sda4
那么第1分区的备份命令为:dd if=/dev/block/platform/soc/by-name/fastboot of=/mnt/sda/sda4/fastboot.img
此备份命令说明:fastboot分区备份到U盘主目录,文件名称格式为:fastboot.img
第2分区备份命令为:dd if=/dev/block/platform/soc/by-name/partition of=/mnt/sda/sda4/partition.img
第3分区到第16分区,用以上方法备份出来。。其它分区备份,我就不写出来了!
本人建议不要备份data分区和cache分区,这两个分区没什么用,而且大容量分区,但分区大小要记住了!

---------------------------------------------------------------------------------------------------------------------------------------


11、分区表的制作!
最好制作之前去找任何机型的分区表来当参考!
以下是我写了第1、2分区参数来示范给大家参考(为了你们容易看懂,我用了不同字体颜色,同颜色的为同一行,每行一个分区参数)

<?xml version="1.0" encoding="GB2312" ?>
<Partition_Info>
<Part Sel="1" PartitionName="fastboot" FlashType="emmc" FileSystem="none" Start="0" Length="2M" SelectFile="fastboot.img"/>
<Part Sel="1" PartitionName="partition" FlashType="emmc" FileSystem="none" Start="2M" Length="2M" SelectFile="partition.img"/>
</Partition_Info>

**** Hidden Message *****


本贴暂时编写至此。。。今后可能会更新此贴。。。。。。
                                                                           作者:城管X来了

su0811 发表于 2021-11-25 15:41

谢谢

莫名的轻风 发表于 2021-11-25 15:05

纯干货啊,厉害{znds1}

晒你带不带 发表于 2021-11-25 15:13

过来学习下分区表怎么搞

晒你带不带 发表于 2021-11-25 15:18

佩服楼主 真大神!看的我就是大写的服!

qwe1238 发表于 2021-11-25 15:21

谢谢分享............

chenwuxi200 发表于 2021-11-25 15:35

梦艳成真 发表于 2021-11-25 15:37

66666666666

Thew 发表于 2021-11-25 15:42

66

和特殊符号 发表于 2021-11-25 15:47

感谢楼主~
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: (首发)海思处理器hitool线刷包制作教程