需求:
可以写入SN号,写入的SN号可以作用于adb devices显示和setting显示
方法:
1. 修改drmservice.c,路径如下:
system/core/drmservice/drmservice.c
内容如下:
#define SERIALNO_FROM_IDB 1 //if 1 read sn from idb3; if 0 generate sn auto
2. 若还是无效,可对应修改 init.rk30board.rc,diff如下:
# set ro.serialno on property:sys.serialno=* - setprop ro.serialno ${sys.serialno} + setprop ro.serialno ${ro.boot.serialno}
原理:
1. idb3是指idblock的sector3,在机器开机时,boot会打印出sn号,sn:XXXXXXXX 这里的sn号,就是boot读取了sector3的数据得到的。
2. 文件 u-boot/board/rockchip/common/rkloader/idblock.c +617中有描述上述原理。
3. 文件 u-boot/board/rockchip/common/mediaboot/sdmmcBoot.c +114 中有 SDM_Read的信息,读取到全局变量gIdDataBuf中。
4. 文件 kernel/drivers/mtd/rknand/rknand_base_ko.c +321 这里有描述kernel获取sn号的方式。
版权所有丨如未注明,均为原创,转载请注明转自:https://whonee.net/rk-sn-number-write-enable.html