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,然後保存