星空软件

 找回密码
 立即注册

[其它] 安卓(Android)获取获取手机串号方法,附机型修改

快乐宝贝567 | 2021-12-1 12:22:58 | 显示全部楼层 |阅读模式
我们都知道每个手机都有一个唯一的串号,而这个串号如何才能获取到和修改到呢,别着急,今天我们就教大家一步步操作读取串号和修改串号~~~网上买一些改串号的工具还很贵,少则几百,多则上千的都有,如果你详细的读完我这篇文章,其实就可以自己私底下去读取和修改串号了~~~

Context context = getWindow().getContext();        

TelephonyManager telephonemanage = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);              

  try        {     

   Toast.makeText(this, "MIEI码为:"+telephonemanage.getDeviceId(), 1000).show();      

  }    

    catch(Exception e)        {     

   Log.i("error", e.getMessage());  

      }

如果出现了错误,请加上如下这段代码,需要写权限
  1. <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
复制代码
那么串号文件在那个文件夹里面呢,部分网友的回答是:
用x_plore打开E盘的Data文件夹下有一个以手机串号命名的文件,后缀名是.ndif。

然后需要补充的是android 底层是 Linux,我们还是用Linux的方法来获取:
1 cpu号:
文件在: /proc/cpuinfo
通过Adb shell 查看:
adb shell cat /proc/cpuinfo
2 mac 地址
文件路径 /sys/class/net/wlan0/address
adb shell  cat /sys/class/net/wlan0/address                              
xx:xx:xx:xx:xx:aa
这样可以获取两者的序列号,
方法确定,剩下的就是写代码了
以Mac地址为例:


  String getMac() {
                String macSerial = null;
                String str = "";
                try {
                        Process pp = Runtime.getRuntime().exec(
                                        "cat /sys/class/net/wlan0/address ");
                        InputStreamReader ir = new InputStreamReader(pp.getInputStream());
                        LineNumberReader input = new LineNumberReader(ir);

                        for (; null != str;) {
                                str = input.readLine();
                                if (str != null) {
                                        macSerial = str.trim();// 去空格
                                        break;
                                }
                        }
                } catch (IOException ex) {
                        // 赋予默认值
                        ex.printStackTrace();
                }
                return macSerial;
        }
安卓系统有关的一些信息大多在/system/build.prop这个文件中,尤其是跟机型有关的信息。下面是ZTE U960S3这台手机调试输出的信息:
截图202112011220129410.png 可以看到型号(model),商标(brand),设备(device),名字(name)等等。修改这些其实是修改build.prop文件。前面修改MP0B_001也是替换对应文件。但是安卓系统底层是Linux,/system和/data都需要root权限才能访问,或者你源码辨析获得system权限(这个暂时不谈)。代码中我有相应的修改权限的函数,以chmod开头的函数,修改相应的文件权限,我们可以对之进行修改、替换操作,达到我们的目的。当然,IMEI和机型等的信息需要修改才能生效。
截图202112011220449795.png

如果您需要修改build.prop的其他信息,izai我的代码基础之上添加其他修改,比如mac地址的等。强烈建议您备份一份build.prop文件,备份的操作可以通过adb shell进行操作,比如上面我备份的文件叫build.back。一旦build.prop文件损坏,我们可以替换回去。



(2)重点说一下文件存放位置:

1. MP0B_001*的系列文件需要存放在SD卡根目录的imei文件夹中,文件名可以变(不是MP0B_001*),但是不能有其他不包含imei信息的文件,否者替换无效,copy文件到imei文件夹的时候请留意是否有无效文件。

2. 包含机型信息的文件需要放置SD卡根目录,文件名为model.txt 。此文件的信息每一行含有两个部分:手机品牌+型号,比如:lenovo A750.中间有一个空格,每一行只有手机品牌和型号之间有空格 多出来的空格无效,多出空格活菏泽无空格会报异常。请输入信息的时候注意是否按要求录入。



关于开机自启动,已经完成,默认会有10s提示。点击取消按钮取消自动写入及重启,变成手动模式。否则软件自动写入新的imei和机型信息然后重新启动,循环下去。下面是修改的结果的部分截图:
截图202112011221178211.png


截图202112011221252845.png
(3)软件界面如下:
截图202112011222428676.png
其中imei1和imei2分别是两个卡对应的imei号,imeis为我们将要替换系统MP0B_001文件的文件名。PC端生成的MP0B_001*文件请拷贝到安卓手机的SD卡的根目录的imei文件夹中。一般是/sdcard/imei路径,注意此文件夹中不要拷贝其他无关文件,写入时默认选取改目录下的第一个文件,写入完成会删除相应文件。重启按钮就是重启手机了,也可以改成写入完成后立即重启。





上一篇:fiddler证书导出创建失败,无法抓取HTTPS数据,解决办法
下一篇:按键精灵移动版跳出退出循环!!!就这么简单
回复

使用道具 举报

标题超过5个字 | 2021-12-1 12:24:17 | 显示全部楼层
好 我试试
回复

使用道具 举报

同感丶 | 2021-12-1 12:24:30 | 显示全部楼层
按这个步骤操作就能改串号?
回复

使用道具 举报

阳光里的他 | 2021-12-1 12:24:40 | 显示全部楼层
给楼主顶一个
回复

使用道具 举报

晚景入寒窗 | 2021-12-1 12:25:00 | 显示全部楼层
这方法确实牛X
回复

使用道具 举报

胡胡胡美丽_ss | 2021-12-1 12:25:17 | 显示全部楼层
文章很干
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

全站声明【必看】|小黑屋|新库软件 |网站地图

GMT+8, 2024-4-19 19:08 , Processed in 0.069951 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.