A. 怎么修改手机IMEI码
可以按照如下方式进行操作:
1、首选需要下载安装所需软件,下载MTK大师,主要适合修改MTK芯片的安卓智能手机,现在多数国产安卓都是MTK的,手机是需要ROOT权限的。
imei号码意义:
1、前6位数(TAC)是"型号核准号码",一般代表机型。
2、接着的2位数(FAC)是"最后装配号",一般代表产地。
3、之后的6位数(SNR)是"串号",一般代表生产顺序号。
4、最后1位数(SP)通常是"0",为检验码,当前暂备用。
IMEI码贴在移动电话机背面的标志上,并且读写于移动电话机内存中。它也是该移动电话机在厂家的"档案"和"身份证号"。
B. 如何修改android模拟器上的IMEI,IMSI,SIM card serial number
手机使用IMEI和IMSI登录到GSM网络的,由GSM网络侧负责将IMSI和映射成手机号(MSISDN),以及执行相反方向的映射。
(一)、SIM card 号的修改:
SIM card号就是印制在SIM上的一串数字。
读SIM card号的AT命令为:AT+CRSM=176,12258,0,0,10
因此在andorid模拟其源码中找到该AT命令——在sim_card.c中:
const char*
asimcard_io( ASimCard sim, const char* cmd )
{
int nn;
#if ENABLE_DYNAMIC_RECORDS
int command, id, p1, p2, p3;
#endif
static const struct { const char* cmd; const char* answer; } answers[] =
{
{ "+CRSM=192,28436,0,0,15", "+CRSM: 144,0," },
{ "+CRSM=176,28436,0,0,20", "+CRSM: 144,0," },
{ "+CRSM=192,28433,0,0,15", "+CRSM: 144,0," },
{ "+CRSM=176,28433,0,0,1", "+CRSM: 144,0,55" },
{ "+CRSM=192,12258,0,0,15", "+CRSM: 144,0," },
{ "+CRSM=176,12258,0,0,10", "+CRSM: 144,0,98101430121181157002" },
...
...
因此用UE二进制方式打开emulator-arm.exe 或 emulator-x86.exe,并搜索字符串“98101430121181157002”,然后将其修改成需要的SIM card号。
比如:
00209a00h: 31 30 00 00 2B 43 52 53 4D 3A 20 31 34 34 2C 30 ; 10..+CRSM: 144,0
00209a10h: 2C 39 38 31 30 31 34 33 30 31 32 31 31 38 31 31 ; ,981014301211811
00209a20h: 35 37 30 30 32 00 2B 43 52 53 4D 3D 31 39 32 2C ; 57002.+CRSM=192,
(二)、IMEI、IMSI号的修改:
Java代码中获取手机的IMEI号与ISMI号途径为:
TelephonyManager manager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String imei = manager.getDeviceId();
String imsi = manager.getSubscriberId();
在android的源码树中找到类TelephonyManager的实现:
成员函数getDeviceId:
/**
* Returns the unique device ID, for example, the IMEI for GSM and the MEID
* or ESN for CDMA phones. Return null if device ID is not available.
*
* <p>Requires Permission:
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
*/
public String getDeviceId() {
try {
return getSubscriberInfo().getDeviceId();
} catch (RemoteException ex) {
return null;
} catch (NullPointerException ex) {
return null;
}
}
成员函数getSubscriberId:
/**
* Returns the unique subscriber ID, for example, the IMSI for a GSM phone.
* Return null if it is unavailable.
* <p>
* Requires Permission:
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
*/
public String getSubscriberId() {
try {
return getSubscriberInfo().getSubscriberId();
} catch (RemoteException ex) {
return null;
} catch (NullPointerException ex) {
// This could happen before phone restarts e to crashing
return null;
}
}
上面两个成员函数最终调用共同的一个私有成员函数getSubscriberInfo():
private IPhoneSubInfo getSubscriberInfo() {
// get it each time because that process crashes a lot
return IPhoneSubInfo.Stub.asInterface(ServiceManager.getService("iphonesubinfo"));
}
而上面私有函数getSubscriberInfo获取的手机IMSI和IMEI号被硬编码在文件android_modem.c中:
/* the Android GSM stack checks that the operator's name has changed
* when roaming is on. If not, it will not update the Roaming status icon
*
* this means that we need to emulate two distinct operators:
* - the first one for the 'home' registration state, must also correspond
* to the emulated user's IMEI
*
* - the second one for the 'roaming' registration state, must have a
* different name and MCC/MNC
*/
#define OPERATOR_HOME_INDEX 0
#define OPERATOR_HOME_MCC 310
#define OPERATOR_HOME_MNC 260
#define OPERATOR_HOME_NAME "Android"
#define OPERATOR_HOME_MCCMNC STRINGIFY(OPERATOR_HOME_MCC) \
STRINGIFY(OPERATOR_HOME_MNC)
#define OPERATOR_ROAMING_INDEX 1
#define OPERATOR_ROAMING_MCC 310
#define OPERATOR_ROAMING_MNC 295
#define OPERATOR_ROAMING_NAME "TelKila"
#define OPERATOR_ROAMING_MCCMNC STRINGIFY(OPERATOR_ROAMING_MCC) \
STRINGIFY(OPERATOR_ROAMING_MNC)
/* a function used to deal with a non-trivial request */
typedef const char* (*ResponseHandler)(const char* cmd, AModem modem);
static const struct {
const char* cmd; /* command coming from libreference-ril.so, if first
character is '!', then the rest is a prefix only */
const char* answer; /* default answer, NULL if needs specific handling or
if OK is good enough */
ResponseHandler handler; /* specific handler, ignored if 'answer' is not NULL,
NULL if OK is good enough */
} sDefaultResponses[] =
{
/* see onRadioPowerOn() */
{ "%CPHS=1", NULL, NULL },
{ "%CTZV=1", NULL, NULL },
...
{ "!+VTS=", NULL, handleSetDialTone },
{ "+CIMI", OPERATOR_HOME_MCCMNC "000000000", NULL }, /* request internation subscriber identification number */
{ "+CGSN", "000000000000000", NULL }, /* request model version */
{ "+CUSD=2",NULL, NULL }, /* Cancel USSD */
...
/* end of list */
{NULL, NULL, NULL}
};
因此用UE二进制方式打开emulator-arm.exe 或 emulator-x86.exe,并搜索字符串"+CGSN"修改为需要的IMEI号;搜索"+CIMI"修改为需要的IMSI号。需要注意的是 IMSI 号的头六个数字"310260"不能修改,否则模拟器无法与网络连接。
例如:
001fc700h: 33 00 41 00 48 00 21 2B 56 54 53 3D 00 2B 43 49 ; 3.A.H.!+VTS=.+CI
001fc710h: 4D 49 00 33 31 30 32 36 30 30 30 30 30 30 30 30 ; MI.3102600000000
001fc720h: 30 30 00 2B 43 47 53 4E 00 30 30 30 30 30 30 30 ; 00.+CGSN.0000000
001fc730h: 30 30 30 30 30 30 30 30 00 2B 43 55 53 44 3D 32 ; 00000000.+CUSD=2
C. 哪位大侠指点指点,我想在UltraEdit中打开Android模拟器文件emulator-arm.exe修改IMSI
这个问题没遇到过,建议你重新安装一下
D. 如何修改android模拟器上的IMEI,IMSI,SIM card serial number
1、检查SIM卡是否插入正确位置,如果是的话可以重新插一次SIM卡。
2、检查SIM卡金色卡片区域是否明显受损或划伤。如果是的话只能更换。
3、SIM用的时间长了或者经常拔插SIM卡会引起卡与手机的接触不良,此时就需要检查SIM及电话的电极,如果不干净,可用防静电的布来清洁一下。
E. android 代码获取IMEI,IMSI都为空,怎么解决
Android获取IMSI和IMEI :
IMSI是一个唯一的数字,标识了GSM和UMTS 网络里的唯一一个用户.
它存储 在手机的SIM卡里,它会通过手机发送到网络上。
IMEI也是一串唯一的数字,标识了GSM 和UMTS网络里的三星 Galaxy I9100.。
它通常被打印在手机里电池下面的那一面,拨 *#06# 也能看到它。
代码:
这里是你在Android里读出 唯一的 IMSI-ID/IMEI-ID 的方法。
Java:
StringmyIMSI=
android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI
);
//withinmyemulatoritreturns:310995000000000
StringmyIMEI=
android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMEI
);
//withinmyemulatoritreturns:000000000000000
手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手
机号码的数据写入到sim卡中。sim卡只有唯一的编号,供网络与设备识别那就是imsi号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。
试想,你的sim丢失后,补办一张新的会换号码吗? —不会就是因为在你的手机号码对应的 imsi号在移动运营商中被修改成新sim卡的imsi号码。
这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。
/** * 获得手机的一些标志符* *@paramc *@returnString 手机的类型 */
publicStringfetch_status(Contextc){
TelephonyManagertm=(TelephonyManager)c
.getSystemService(Context.TELEPHONY_SERVICE);//
Stringstr="";
StringIMSI=tm.getSubscriberId();
str+="DeviceId(IMEI)="+tm.getDeviceId()+"/n";
str+="DeviceSoftwareVersion="+tm.getDeviceSoftwareVersion()
+"/n";
str+="Line1Number="+tm.getLine1Number()+"/n";
return str;
}
F. Android模拟器怎么设置能虚拟出IMSI和IMEI
模拟器二进制映像(android-sdk-linux_x86/tools/emulator)没有加密 也 没有被压缩,所以明文字符串可见。IMEI可以通过如下步骤修改: 1)备份模拟器映像 2)用二进制编辑器打开它
G. 谁有安卓 模拟器 修改 手机 串号 IMEI MAC SIM序列号 IMSI
安卓模拟器修改需要安装Xposed框架 Xposed框架是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务, 基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。 Xposed框架适合安卓模拟器使用可以达到修改 IMEIMACSIM序列号IMSI这些数据信息 安卓模拟器需要获取ROOT权限再安装框架伪装之类
H. 如何修改手机上网的IMSI码,重酬
修改不了,是同电话号码绑定的,除非复制卡,但是只能复制2009年以前的SIM卡,电信卡需要鉴权码,现在生产的sim卡无法复制或者读取到一定次数会自毁芯片。
I. Android模拟器怎么设置能虚拟出IMSI和IMEI
模拟器二进制映像(android-sdk-linux_x86/tools/emulator)没有加密 也 没有被压缩,所以明文字符串可见。IMEI可以通过如下步骤修改: 1)备份模拟器映像 2)用二进制编辑器打开它 3)搜索 +CGSN字符串, 后面跟着15个数字的IMEI 4) 编辑这些IMEI,然后保存