华为tag一al华为al100是什么型号号

前几天,遇到一台华为机型,IMEI获取有问题,然后就找了一下。
以下是解决过程,权当记录一下,尽管为知笔记已经有备份了 :)
0x01: 起因
  测试小哥发现,一台机型IMEI获取不全,有问题,拨号页面获取出来 MEID/IMEI1/IMEI2 而我们只能获取 其中两个,丢了一个
  & 然后抱着手机过来问能不能处理一下,型号为:&HUAWEI TAG-AL00
  我抱着试试看的态度,跑了一下之前获取方式,果然少了一个,然后就开始找哪里出了问题。
0x02:过程
  a. 准备工作,找apk文件和位置
  既然自己获取和拨号页面&*#06#& 出来的不一致,直接从拨号页面入手看它是如何获取的。
  找拨号页面信息,先找到拨号页面信息。通过 Log查看,TAG:&ActivityManager,在过滤下 "START" ,找到拨号页面的Activity。
  shell里命令:
  &1 logcat -s ActivityManager | grep START&
  &1 "act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x cmp=com.android.contacts/.activities.DialtactsActivity"&
  同时根据包名 &com.android.contacts& 找apk位置
  &shell@HWTAG-L6753:/ $ pm path com.android.contacts&
  &package:/system/priv-app/Contacts/Contacts.apk&
  然后把apk文件夹pull出来。因为包含oat文件
  b.开始找位置:
  首先是oat文件转换成dex,不转换也可以,拖到ida里面看smali,不过既然可以看伪代码,还是看伪代码吧...
  oat转换dex工具为git某大神写好的python,在此感谢,
  不过少数oat文件解析有问题,正在学python,希望以后可以改一下。
  不出意外,可以获得完整dex文件。
  然后将classes.dex拖到Contacts.apk 中去,方便解包。也可以直接看dex,不用合并。
  然后,apk文件拖到jeb,找对应的Activity位置:
  &com.android.contacts.activities.DialtactsActivity&
  没看到明显获取IMEI位置,全局找字符串: "*#06#",定位到:& 
   com.android.dialer.SpecialCharSequenceMgr.java&
  找到位置后,查看显示获取IMEI位置,函数:
  &static boolean handleDeviceIdDisplay(Context context, String input) &
  c. 具体实现:  
static boolean handleDeviceIdDisplay(Context context, String input) {
boolean v11_
Object v10_phone_server = context.getSystemService("phone");
if(v10_phone_server == null || !input.equals("*#06#")) {
v11_boolean = false;
context.getResources().getString();
ArrayList v3 = new ArrayList();
String v9_product = SystemProperties.get("ro.product.name", "");
String v0_CountryIso = ((TelephonyManager)v10_phone_server).getNetworkCountryIso();
String v8_cdma = SystemProperties.get("cdma.meid", null);
String v4_imei1 = SystemProperties.get("gsm.imei1", null);
String v5_imei2 = SystemProperties.get("gsm.imei2", null);
Log.d("xionghaifeng", "meid: " + v8_cdma + " imei1 " + v4_imei1 + " imei2 " + v5_imei2 + " product " + v9_product
+ " PLMN " + v0_CountryIso);
if(!v9_product.equalsIgnoreCase("TAG-TL00") || !v0_CountryIso.equals("cn")) {
if(v8_cdma != null && !TextUtils.isEmpty(((CharSequence)v8_cdma))) {
((List)v3).add("MEID:" + v8_cdma.toUpperCase());
if(v4_imei1 != null && !TextUtils.isEmpty(((CharSequence)v4_imei1))) {
((List)v3).add("IMEI1:" + v4_imei1);
if(v5_imei2 == null) {
goto label_63;
if(TextUtils.isEmpty(((CharSequence)v5_imei2))) {
goto label_63;
((List)v3).add("IMEI2:" + v5_imei2);
if(v8_cdma != null) {
TextUtils.isEmpty(((CharSequence)v8_cdma));
if(v4_imei1 == null) {
goto label_63;
if(TextUtils.isEmpty(((CharSequence)v4_imei1))) {
goto label_63;
((List)v3).add("IMEI:" + v4_imei1);
new AlertDialog$Builder(context).setTitle("IMEI_IMEI").setItems(((List)v3).toArray(new String[((
List)v3).size()]), null).setPositiveButton(, null).setCancelable(false).
v11_boolean = true;
return v11_
    还看到了小哥的log信息,仔细看了下log,果然有..... :)
    xiong兄弟,不好意思哈
    然后根据伪代码开始写获取IMEI部分
    发现大部分是使用的: android.os.SystemProperties&获取的,然而&SystemProperties 被Hide了,无法正常使用。
    源码里看了下:SystemProperties.get(String key);&
    恰巧,前几天看:android.os.Build 代码时候,其中:private static String More ...getString(String property) &函数实际调用的就是:SystemProperties.get(String key)
    然后,直接反射走起...其实反射:android.os.SystemProperties 或者 反射 :android.os.Build 结果都是一样的,
    代码如下,多了一个for循环,可以直接一步找函数的:
* huaweiTAGAL00获取IMEI特殊
* @param context
* @param imeis
private void getMeid_HuaweiTAGAL00(Context context, HashSet&String& imeis) {
Class&?& classz = Class.forName("android.os.Build");
Method[] declaredMethods = classz.getDeclaredMethods();
for (int i = 0; i & declaredMethods. i++) {
Method method = declaredMethods[i];
if (method.getName().equals("getString")) {
method.setAccessible(true);
String meid = (String) method.invoke(classz, "cdma.meid");
String imei1 = (String) method.invoke(classz, "gsm.imei1");
String imei2 = (String) method.invoke(classz, "gsm.imei2");
Log.d("wyy","meid"+meid);
Log.d("wyy","imei1"+imei1);
Log.d("wyy","imei2"+imei2);
} catch (Exception e) {
e.printStackTrace();
    测试OK,获取值和拨号页面一致。
    搞定收工。
 0x03: 后续
    至于为什么在拨号的Activity没有找到明显位置,再次确认了下,拨号页面注册了键盘监听,SpecialCharSequenceMgr为回调位置。
   Over
   附 oat提取dex工具地址:&
   其他功能工具: jeb 看雪找下吧 :)
   排版不太好,不熟悉编辑器,见谅
阅读(...) 评论()查看: 6405|回复: 1
请教各位大侠:怎样ROOT华为的TAG-AL00?
签到天数: 4 天[LV.2]偶尔看看I
主题好友奇兔币
小白, 积分 51, 距离下一级还需 49 积分
小白, 积分 51, 距离下一级还需 49 积分
马上注册,玩转你的爱机。
才可以下载或查看,没有帐号?
请教各位大侠:
最近入手了一部畅享5S:TAG-AL00,其中预装了几十个讨厌的官方定制的东西,动辄就弹窗跳出来,很是烦人。想它,可是奇虎的一键ROOT不顶劲,ROOT了几次都是失败。特在此向各位大侠请教:您们有何高见赐教小可我?先在此谢谢了!
签到天数: 627 天[LV.9]以坛为家II
主题好友奇兔币
估计暂时不支持
站长推荐 /3
手机刷机成砖了怎么办?手机开不了机怎么办?整理一批各种品牌手机官方固件为大家手机救砖,以下大约有几千款手机官方固件线刷包。
MTK智能手机原则上是没有真正的死砖头的,除非是硬件问题!这个是后话了,本文提及的死砖头,基本表现:数据线连接电脑没“任何”反应,接充电线,充电灯不亮!
本期为大家详细演示一下奇兔线刷大师一键线刷救砖的流程。
奇兔线刷大师是奇兔官方专门为线刷量身打造的一款软件,既可以进行日常更新系统的线刷,还可以在由于各种原因导致系统崩溃后进行线刷修复。
Powered by手机维修网 Q群:(同行专业维修群: ),普通群:
我的位置:&>&&>&华为HUAWEI TAG-AL00原厂售后线刷包华为畅享5S全网通版MT6753
华为HUAWEI TAG-AL00原厂售后线刷包华为畅享5S全网通版MT6753
文件大小:1.09 GB
芯片厂商:联发科MTK
芯片型号:6735
下载人气:854
刷机类型:原厂线刷
刷机进度:测试OK!
手机厂商:
手机刷机截图--点击查看更多图
相关标签:
软件简介& && --->刷机过程中如遇到问题请加QQ群解决问题:技术支持Q群:
华为TAG-AL00刷机包当前软件版本号:TAG-AL00C92B126,请详细参考官方售后要求否则刷不进!
这个包是加密的!!!!请务必参考原厂售后要求!
这里是刷机教程& && &
联发科MTK手机线刷错误代码信息解译以及解决方法大全& &
同类周排行同类总排行

我要回帖

更多关于 华为tag一al00手机壳 的文章

 

随机推荐