正文
Java代码获取IMEI java代码获取字符编码为多少
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
android imei是唯一的吗
android手机只有IMEI是硬件唯一标识Java代码获取IMEI,其它标识都是不可靠Java代码获取IMEI的Java代码获取IMEI,因为IMEI需要到国际移动设备登记处登录注册Java代码获取IMEI的。 java获得android的imei号步骤Java代码获取IMEI: 1、权限添加: uses-permission android:name="android.permission.READ_PHONE_STATE" /2、调用android的api TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); String IMEI = telephonyManager.getDeviceId();3、adb命令获得: adb shell dumpsys iphonesubinfo4、任何手机都可以在拨打电话的界面输入*#06# 来查看IMEI。
怎么用java代码把imei和uin取得微信数据库加密方法密码
这还真是第一次写java程序。其实,一直是对java有偏见的。无奈,从BlackFeather那里知道了微信数据库加密方法,以及密码的获取方式。
发现是基于hashmap的,本来吧,还是想用C或者其他语言来实现对hashmap的读取,可后来都失败了。要么就是太复杂了。于是,还是硬着头皮去把jdk装好,然后~~~开始各种百度。
先用反编译出来的代码搭了个大体的轮廓。然后,自己各种加代码(考虑到一些问题,还是只贴出一些关键代码吧):
加密方式是:hash(imeiuin).substring(0,7)
public static void main(String[] args)
{
try
{
ObjectInputStream in = new ObjectInputStream(new FileInputStream(args[0]));
Object DL = in.readObject();
HashMap hashWithOutFormat = (HashMap)DL;
ObjectInputStream in1 = new ObjectInputStream(new FileInputStream(args[1]));
Object DJ = in1.readObject();
HashMap hashWithOutFormat1 = (HashMap)DJ;
String s = String.valueOf(hashWithOutFormat1.get(Integer.valueOf(258))); //取IMEI
s=s+hashWithOutFormat.get(Integer.valueOf(1));//
s=encode(s);//hash
System.out.println("The Key is : "+s.substring(0,7));
in.close();
in1.close();
}
}
如何修改android模拟器上的IMEI,IMSI,SIM card serial number
手机使用IMEI和IMSI登录到GSM网络Java代码获取IMEI的Java代码获取IMEI,由GSM网络侧负责将IMSI和映射成手机号(MSISDN),以及执行相反方向Java代码获取IMEI的映射。
(一)、SIM card 号Java代码获取IMEI的修改:
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,000000146f1404001aa0aa01020000" },
{ "+CRSM=176,28436,0,0,20", "+CRSM: 144,0,416e64726f6964ffffffffffffffffffffffffff" },
{ "+CRSM=192,28433,0,0,15", "+CRSM: 144,0,000000016f11040011a0aa01020000" },
{ "+CRSM=176,28433,0,0,1", "+CRSM: 144,0,55" },
{ "+CRSM=192,12258,0,0,15", "+CRSM: 144,0,0000000a2fe204000fa0aa01020000" },
{ "+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.
*
* pRequires 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 due 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号Java代码获取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
如何获取GAID,Android ID和IMEI
Android设备不同类型的识别设备ID。·唯一编号(IMEI,MEID,ESN,IMSI)·MAC地址·序列号·ANDROID_ID唯一编号(IMEI,MEID,ESN,IMSI)说明在以前,当Android设备均作为电话使用时,寻找唯一标识号比较简单:()可用于找到(取决于网络技术)手机硬件唯一的IMEI,MEID,ESN和IMSI编号。TelephonyManager.getDeviceIdIMEI,MEID,ESN,IMSI的定义如下:•IMEI(国际移动设备识别码)唯一编号,用于识别GSM,WCDMA手机以及一些卫星电话(移动设备识别码)全球唯一编号,用于识别CDMA移动电台设备的物理硬件,MEID出现的目的是取代ESN号段(电子序列号)(电子序列号)唯一编号,用于识别CDMA手机(国际移动用户识别码)与所有GSM和UMTS网络手机用户相关联的唯一识别编号如需要检索设备的ID,在项目中要使用以下代码:•MEID•ESN•IMSIimportandroid.telephony.TelephonyManager;importandroid.content.Context;Stringimeistring=null;Stringimsistring=null;{TelephonyManagertelephonyManager;telephonyManager=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);/**getDeviceId()functionReturnstheuniquedeviceID.*forexample,theIMEIforGSMandtheMEIDorESNforCDMAphones.*/imeistring=telephonyManager.getDeviceId();/**getSubscriberId()functionReturnstheuniquesubscriberID,*forexample,theIMSIforaGSMphone.*/imsistring=telephonyManager.getSubscriberId();}
如何获取android设备的imei号
获取android设备Java代码获取IMEI的imei号可以打开拨号盘Java代码获取IMEI,输入*#06#即可查看IMEI号。
国际移动设备识别码(IMEI:International Mobile Equipment Identification Number)是区别移动设备的标志Java代码获取IMEI,储存在移动设备中,可用于监控被窃或无效的移动设备。IMEI可用移动终端设备通过键入"*#06#"查得(不同厂商的手机所需输入的内容不同,同一厂商不同手机所需输入的内容也可能不同)。其总长为15位,每位数字仅使用0~9的数字(含义见下文)。
IMEI俗称"串号",存储在手机的EEPROM(俗称"码片")里,熟悉并Java代码获取IMEI了解这个号码对Java代码获取IMEI我们今后识别手机会起到非常大的作用。
求教前端工程师们,javascript或者jquery 等H5的插件等。如何获取手机的IMEI码;
如果Java代码获取IMEI你做的是android 的应用Java代码获取IMEI,使用Java代码获取IMEI了webviewJava代码获取IMEI,IMEI还是可以获取的。
使用 addJavascriptInterface(object, "test");
可以用来让web中的js调用本地Java对象Java代码获取IMEI,而 获取的IMEI可以在这个本地Java对象中实现。
试试搜一下 android webview js 调用 本地 java,android js java 交互 等关键词。
Java代码获取IMEI的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java代码获取字符编码为多少、Java代码获取IMEI的信息别忘了在本站进行查找喔。