Android设备序列号修改
原理
全志平台Android系统“关于平板电脑”中设备序列号由U-Boot中sunxi_serial环境变量记录,而U-Boot中有通过读取芯片ID或读取特定分区内文件的方式自动设置此环境变量的代码。
修改步骤
2.1 修改FEX文件和U-Boot代码 2.1.1 启用U-Boot对序列号的支持 修改lichee/brandy/u-boot-2014.07/include/configs/sun8iw11p1.h,取消注释#define CONFIG_SUNXI_SERIAL; 2.1.2 在FEX文件中添加: [serial_feature] sn_filename = "sn.txt"
2.2 重新编译U-Boot和打包固件 2.2.1 编译U-Boot(lichee/brandy/u-boot-2014.07/): make distclean make sun8iw11p1_config make -j16 2.2.2打包固件(android/): source build/envsetup.sh lunch 24 pack
2.3 写入/修改序列号: 在系统启动后在Shell命令行执行: busybox mkfs.vfat /dev/block/by-name/private mkdir /sdcard/private mount /dev/block/by-name/private /sdcard/private echo "XXXXXXXX12345678" > /sdcard/private/sn.txt sync 重启后可看到序列号变为XXXXXXXX12345678。
说明
3.1 可以将上述写入序列号的流程写成脚本,通过adb shell执行从而方便量产; 3.2 private分区在烧录固件时不会被擦除,所以写入的序列号不会因刷机而丢失;