完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Platform: RK3288
OS: Android 6.0 Kernel: 3.10.92 rk3288平台的serial number是由drmservice写进去的,drmservice在rc文件中定义启动: init.rk30board.rc: service drmservice /system/bin/drmservice class main oneshot 源代码 system/core/drmservice int main( int argc, char *argv[] ) { SLOGE("----------------running drmservice---------------"); ...... //此值表示从IDB中获取,当前默认为0. if(SERIALNO_FROM_IDB)//read serialno form idb { ...... } else//auto generate serialno { //生成serial number generate_device_serialno(10,sn_buf_auto); //写到属性为"sys.serialno"的property中。 property_set("sys.serialno", sn_buf_auto[0] ? sn_buf_auto : ""); //写到/sys/class/android_u***/android0/iSerial中 //此位置作为设备序列号存储的地方,可以临时修改,重启后失效。 write_serialno2kernel(sn_buf_auto); SLOGE("auto generate serialno,serialno = %s",sn_buf_auto); } ...... } generate_device_serialno -> get_serialno_cached int get_serialno_cached(char * result,int len) { //打开的是"/data/misc/wifi/serialno",也就是读取的是wifi的serial number. fd = open(DEVICE_SERIALNO, O_RDONLY); ...... readlen=read(fd, buf, sizeof(buf) - 1); ...... memcpy(result,buf,readlen); } serial number是通过wifi mac地址计算出来的,在generate_device_serialno()中实现 void generate_device_serialno(int len,char*result) { ...... //已经有serialno就返回 if(!get_serialno_cached(result,len)) { SLOGE("----------serianno =%s",result); return; } //打开mac地址 fd = open(WLAN_MAC_FILE, O_RDONLY); //根据mac计算seed calc_seed_by_mac(value,seed); //存储seed到serialno文件中 store_serialno(result); } 当“sys.serialno”属性被设置时,会触发ro.serialno的更新 init.rk30board.rc: # set ro.serialno on property:sys.serialno=* setprop ro.serialno ${sys.serialno} ro.serialno有了值以后,其他进程就可以使用了。 附drm service相关Log: 03-05 14:58:22.850 221 221 E DrmService: ----------------running drmservice--------------- 03-05 14:58:22.850 221 221 E DrmService: get prop_board_platform,prop_board_platform = rk3288 , diff=-1 03-05 14:58:22.855 215 215 I chatty : uid=0(root) /system/bin/debuggerd expire 1 line 03-05 14:58:22.871 221 221 E DrmService: ----------serianno =C8W7K5OYPX 03-05 14:58:22.872 221 221 E DrmService: auto generate serialno,serialno = C8W7K5OYPX 03-05 14:58:22.872 221 221 E DrmService: rknand_sys_storage open fail 03-05 14:58:22.872 221 221 E DrmService: detect keybox disabled |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
626 浏览 0 评论
887 浏览 1 评论
784 浏览 1 评论
1997 浏览 1 评论
3242 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 03:04 , Processed in 0.679873 second(s), Total 72, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号