Android系统10 RK3399 init进程启动(十) parameter.txt 文件详解

 配套系列教学视频链接:

      安卓系列教程之ROM系统开发-百问100ask

说明

系统:Android10.0

设备: FireFly RK3399 (ROC-RK3399-PC-PLUS)

前言

         在uboot启动,以及生成的所有镜像文件中, 有一个parameter.txt文件, 这个文件通过名字就知道, 参数文件, 肯定是和定制化和启动有关, 学习他很有必有, 本章重点介绍parameter.txt里的内容。


一,简介

ls rockdev/Image-rk3399_roc_pc_plus/

        paramete.txt 是瑞星微安卓系统平台对系统参数进行配置的文件,比如定义串口号,固件版本,机器型号,传递给内核参数存放位置,cmdline, 以及系统分区信息。

        parameter.txt对应的内容:

FIRMWARE_VER:10.0
MACHINE_MODEL:RK3399
MACHINE_ID:007
MANUFACTURER: RK3399
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 3399
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE: console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00002000@0x00008000(dtbo),0x00000800@0x0000a000(vbmeta),0x00020000@0x0000a800(boot),0x00030000@0x0002a800(recovery),0x00038000@0x0005a800(backup),0x00002000@0x00092800(security),0x000c0000@0x00094800(cache),0x00008000@0x00154800(metadata),0x00000400@0x0015c800(frp),0x00714000@0x0015cc00(super),0x00100000@0x00870c00(oem),-@0x00970c00(userdata:grow)

 二, parameter.txt分析

FIRMWARE_VER:10.0

    Android固件版本,打包update.img 用到。升级工具据此识别固件版本。

MACHINE_MODEL: RK3399

    机型。

MACHINE_ID: 007

    产品 ID, 可以用于识别机器机型。

MANUFACTURER: RK3399

    厂商信息。

MAGIC: 0x5041524B

    魔幻数, 无法修改

ATAG: 0x00200800

    U-boot传递内核的参数存放内存位置,uboot对应一个atag结构体数组。

MACHINE: 3399

    内核识别用,不能修改

CHECK_MASK: 0x80

    内核识别用,无法修改。

PWR_HLD: 0,0,A,0,1

控制 GPIO0A0 输出高电平

CMDLINE

androidboot.baseband=N/A

通信基带的型号, 如APQ(是AP only的芯片,无modem,用于wifi only的平板), MSM(Mobile Station Modem)

androidboot.selinux=permissive(宽容) /enforcing(严格)/disable(关闭)

    Selinux权限模式, init进程会根据这个来决定设置selinux权限模式

androidboot.hardware=rk30board

    硬件平台

androidboot.console=ttyFIQ0

    串口定义

init=/init

祖先可执行程序路径

MTD分区信息:

mtdparts 的格式如下:

     mtdparts=<mtddef>[;<mtddef]     

     mtdparts 可以由一个或多个 mtddef 组成。每个mtddef定义如下:

     <mtddef> := <mtd-id>:<partdef>[,<partdef>]

     mtddef 可以由mtd-id 和一个或多个partdef组成,每个partdef定义如下:

     <partdef> := <size>[@offset][<name>][ro]

     <mtd-id> := unique id used in mapping driver/device

     <size> := standard linux memsize OR "-" to denote all remaining space

     <name> := (NAME)

因此在使用的时候,需要按照下面的格式来设置:

     mtdparts=mtd-id:<size1>@<offset1>(<name1>),<size2>@<offset2>(<name2>)

Rk3399中的分区表信息:

mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00002000@0x00008000(dtbo),0x00000800@0x0000a000(vbmeta),0x00020000@0x0000a800(boot),0x00030000@0x0002a800(recovery),0x00038000@0x0005a800(backup),0x00002000@0x00092800(security),0x000c0000@0x00094800(cache),0x00008000@0x00154800(metadata),0x00000400@0x0015c800(frp),0x00714000@0x0015cc00(super),0x00100000@0x00870c00(oem),-@0x00970c00(userdata:grow)

RK30xx,RK29xx,RK292x 都是用 rk29xxnand 做标识

@符号前是分区的大小, @符号后是分区的起始地址

括号中是分区的名字

单位都是 sector(512Bytes)

比如 uboot 起始地址为 0x2000 sectors (4MB)的位置,大小为 0x2000 sectors(4M)

另外 flash 最大的 block 是 4M(0x2000 sectors),所以每个分区需要 4MB 对齐,即每个分区必须为 4MB 的整数倍。

三,查看TF卡分区

通过windows下SD卡烧录工具烧录统一镜像(sd卡启动), 将TF插入到linux pc系统中就会发发现:

15个分区, 其实就对应于parameter.txt中mtdparts的描述。查看sd卡的容量信息: 
cat /proc/partitions (里面的单位是k)

fdisk也是可以查看分区信息: 
#/mnt/extend_disk/android_src/RK/rk3399_Android10.0$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 29.7 GiB, 31914983424 bytes, 62333952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 23000000-0000-4C4A-8000-699000005ABB

设备         Start   末尾   扇区  Size 类型
/dev/sdb1     8192    16383     8192    4M 未知
/dev/sdb2    16384    24575     8192    4M 未知
/dev/sdb3    24576    32767     8192    4M 未知
/dev/sdb4    32768    40959     8192    4M 未知
/dev/sdb5    40960    43007     2048    1M 未知
/dev/sdb6    43008   174079   131072   64M 未知
/dev/sdb7   174080   370687   196608   96M 未知
/dev/sdb8   370688   600063   229376  112M 未知
/dev/sdb9   600064   608255     8192    4M 未知
/dev/sdb10  608256  1394687   786432  384M 未知
/dev/sdb11 1394688  1427455    32768   16M 未知
/dev/sdb12 1427456  1428479     1024  512K 未知
/dev/sdb13 1428480  8850431  7421952  3.6G 未知
/dev/sdb14 8850432  9899007  1048576  512M 未知
/dev/sdb15 9899008 62333887 52434880   25G 未知

查看某个特定分区的信息
cat /sys/block/sdb/sdb6/uevent
MAJOR=8
MINOR=22
DEVNAME=sdb6
DEVTYPE=partition
PARTN=6
PARTNAME=boot

 总结

通过理解parameter.txt, 是可以了解到系统的整个分区布局, 以及启动参数, 对理解烧录和启动都有很大帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旗浩QH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值