文档说明

本文档以SC806-CN-00-71(msm8909平台 Android7系统)为例,描述如何修改Android Serial Number。

Serial Number说明

菜单 About phone -> Status -> Serial Number,如下图所示(图是中文系统,看"序列号"):

SC806-CN-00-71默认的序列号是:12345678

通过Adb devices显示出来的设备号也是: 12345678

UI界面显示的序列号和Adb Devices显示的设备号,两者是有区别的,下面会讲到。

代码分析

Serial Number对应android系统的环境变量 ro.serialno。

查看lk的开机部分代码 bootable/bootloader/lk/app/aboot/aboot.c

下图定义了sn_buf数组,该数组是为了生成cmdline。ro.serialno的值就是通过解析cmdline得到的。

SC806-CN-00-71修改了原生的android代码,把ro.serialno写死为"12345678",并没有通过target_serialno()函数去获取。

看下图,把target_serialno调用注释掉了。

如果要更改序列号,修改sn_buf数组的初始值即可。

我们这里把它改成"77777777"试试。

编译 aboot,烧录,显示如下图所示,Serial Number已经变成了"77777777"

也可以通过cat /proc/cmdline,查看androidboot.serialno的值。

现在通过adb devices查看,还是"12345678"

如果要修改adb devices设备号,修改device/qcom/common/rootdir/etc/init.qcom.usb.rc,不要写死为"12345678",改成从ro.serialno获取。

编译boot,烧录。

遗留问题

从代码上分析,修改 system/core/init/init.cpp应该也可以改掉ro.serialno的值。

在for循环之后,添加了

strlcpy(tmp, "77777777", sizeof("77777777"));

property_set(prop_map[i].dst_prop, tmp);

修改之后编译boot,烧录。但是串口调试log会提示:

property_set(“ro.serialno”, “99999999”) failed

给ro.serialno赋值失败。

没仔细研究property_set()函数。

代码路径和patch

bootable/bootloader/lk/app/aboot/aboot.c

device/qcom/common/rootdir/etc/init.qcom.usb.rc

下面是两个patch:

https://uploader.shimo.im/f/xXaBxqBTb9EyR6va.patch?attname=aboot.patch&download

https://uploader.shimo.im/f/f6dcm5ZeD3QY3cia.patch?attname=init.qcom.usb.rc.patch&download

android序列号怎么修改,修改Android序列号(Serial Number)相关推荐

  1. android获取ro._修改Android序列号(Serial Number)

    文档说明 本文档以SC806-CN-00-71(msm8909平台 Android7系统)为例,描述如何修改Android Serial Number. Serial Number说明 菜单 Abou ...

  2. Android Studio的代码笔记--SN序列号、MAC地址、IP地址学习

    关于获取设备SN序列号.MAC地址.IP地址的学习代码 SN序列号 获取SN序列号 MAC地址 获取MAC地址 IP.wlanIP.wlanMAC.网络.ping 获取以太网的IP地址 获取设备wla ...

  3. Android移动开发之【Android实战项目】DAY12-App实现修改密码

    1.实现修改密码界面,主要是让用户在必要时修改自己的原始密码,从而保证用户信息的安全性. 2.界面效果如下:效果如下: <?xml version="1.0" encodin ...

  4. android 动态修改 selector,Android Selector 按下修改背景和文本颜色的实现代码

    1,selector 按下修改背景和文本颜色 [1]点击改变字体颜色 - android:state_pressed(按压状态) [2]selector状态选择器(bg_btn_two (存放 res ...

  5. 【Android 逆向】逆向修改游戏应用 ( 分析应用结构 | 定位动态库位置 | 定位动态库中的修改点 | 修改动态库 | 重打包 )

    文章目录 一.应用结构分析 二.定位动态库位置 三.定位动态库中的修改点 四.修改动态库 五.重打包 一.应用结构分析 分析上一篇博客 [Android 逆向]逆向修改游戏应用 ( APK 解析工具 ...

  6. android导航条高度修改,Android中修改TabLayout底部导航条Indicator长短的方法

    前言 对于Tablayout相信大家都不陌生,在开发中使用的应该很频繁了,但是底部导航条长短是固定死的,需要自己来改动长短,找了半天没找着方法,看了下官方建议,可以通过映射来修改自己想要的长短,其实也 ...

  7. Android:Socket客户端开发,Android 的Socket客户端优化,Android非UI线程修改控件程序崩溃的问题

    一.Android:Socket客户端开发 创建一个工程 我们要做的是按下按键之后,去往服务器 (服务器) 或者我们自己写的服务器 ,给他发送一些预定好的东西 然后打开操作界面 然后修改一下 你要发送 ...

  8. (转)[Android] 利用 ant 脚本修改项目包名

    [Android] 利用 ant 脚本修改项目包名在开发android应用项目的时候,经常会有这样的需求,一个应用项目,要求 房价上半年下行 下半年或回暖 在不同的OEM下有不同的包名,不同的资源,不 ...

  9. AndroidStudio修改默认C盘配置文件夹(.android.gradle.AndroidStudio)以及修改后避免踩的坑

    场景 AndroidStudio下载安装教程(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103672471 在上 ...

  10. Android Settings开发之修改

    版本:1.0 日期:2014.3.20  2014.3.25   版权:© 2014 kince 转载注明出处                下面是Seeings应用的截图:   可以看出这是很典型的 ...

最新文章

  1. UI培训教程分享:APP启动页UI界面设计
  2. 【小朋友才做选择题】跟着团队一起学习人工智能,先人一步掌握最前沿知识
  3. STL 去重 unique
  4. BugKuCTF WEB flag在index里
  5. php执行系统外部命令的四种方法
  6. HH SaaS电商系统的拼团系统设计
  7. thread安全性(写的不错)
  8. docker nacos mysql nginx 集群多台
  9. 一文看懂神经网络中的梯度下降原理 图像说明
  10. C# XML加载屏蔽注释 忽略注释的加载
  11. Sdm660--OpenCamera流程详细分析(Camera1+Hal1)
  12. mysql数据库性能优化—my.cnf详解
  13. HTML表单验证pattern
  14. Mysql入门【Mysql约束】
  15. dvwa页面打不开的原因_路由器管理页面打不开怎么办? | 192路由网
  16. 淘宝开放平台开发指南之熟悉API族
  17. is 简写 缩写_天美分析仪器研发中心(TREC)新推出高灵敏度积分球IS-2600
  18. 华为资深架构师耗时十年精心整理:Java高级开发需要的分布式技术
  19. Photoshop CS6自学(五)图片编辑
  20. 外推法c语言相关程序,一维搜索外推法程序设计实验报告.doc

热门文章

  1. 论计算机在化工过程控制中的应用,计算机在化工中的应用论文正稿.doc
  2. kvaser二次开发
  3. python界面设计实例qt_Python GUI教程(六):使用Qt设计师进行窗口布局
  4. 使用BIGMAP地图下载器,生成卫星地图
  5. 这是我的计算机房英语怎么写,小学英语人教(12版三起点)四年级下册Unit 1
  6. git diffmerge tool 配置
  7. Java-Spring Boot集成银联在线网关支付及回调处理(银联扫码等方式支付)
  8. PyCharm专业版的下载及安装(破解版)亲测有效
  9. qnx 设备驱动开发_移植LINUX的外围设备驱动到QNX系统中
  10. HUAWEI AC+AP设备配置