1.下载XposedBridgeApi-20150213.jar文件,右键添加到构建路径,这个包是不需要导出的!2.在AndroidManifest.xml里添加三个meta-data数据manifest xmlns:android

1.下载XposedBridgeApi-20150213.jar文件,右键添加到构建路径,这个包是不需要导出的!

2.在AndroidManifest.xml里添加三个meta-data数据

package="cn.zhg.notrack"

android:installLocation="internalOnly"

android:versionCode="1"

android:versionName="1.0.0" >

android:minSdkVersion="15"

android:targetSdkVersion="21" />

android:anyDensity="true"

android:largeScreens="true"

android:normalScreens="true"

android:resizeable="true"

android:smallScreens="true"

android:xlargeScreens="true" />

android:allowBackup="false"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:logo="@drawable/ic_launcher"

android:theme="@style/CustomTheme.Light" >

android:name="xposedmodule"

android:value="true" />

android:name="xposedminversion"

android:value="54" />

android:name="xposeddescription"

android:value="@string/app_description" />

android:name=".MainActivity"

android:configChanges="keyboardHidden|orientation|screenSize"

android:label="@string/app_name"

android:launchMode="singleTop" >

3.在Activity中使用SharedPreferences保存修改自定义的数据

public class MainActivity extends Activity

{

private TelephonyManager phone;

/**IMEI修改输入框*/

private EditText imeitx;

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

phone = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

imeitx=(EditText)this.findViewById(R.id.imei);

}

public boolean onCreateOptionsMenu(Menu menu)

{

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

public boolean onOptionsItemSelected(MenuItem item)

{

int id = item.getItemId();

if (id == R.id.action_save)

{

//保存数据

saveData();

return true;

}

return super.onOptionsItemSelected(item);

}

/**

* 使用SharedPreferences保存数据

*/

private void saveData()

{

try

{

SharedPreferences sh = this.getSharedPreferences("prefs",

Context.MODE_WORLD_READABLE);

Editor pre = sh.edit();

Logger.d("保存内容");

pre.putString("imei", imeitx.getText().toString());

pre.apply();

} catch (Throwable e)

{

Logger.d("写入内容失败");

e.printStackTrace();

}

}

protected void onResume()

{

super.onResume();

//读取当前设备的IMEI

imeitx.setText(phone.getDeviceId());

}

}

4.在assets创建xposed_init文件,,指定Xposed Hook入口类

cn.zhg.notrack.MainHook

5.MainHook实现IXposedHookLoadPackage接口的handleLoadPackage方法,使用XSharedPreferences获取保存的数据,XposedHelpers注入监听TelephonyManager#getDeviceId方法

public class MainHook implements IXposedHookLoadPackage

{

public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable

{

XSharedPreferences pre = new XSharedPreferences(this.getClass()

.getPackage().getName(), "prefs");

HookMethod(TelephonyManager.class, "getDeviceId",

pre.getString("imei", null));

}

private void HookMethod(final Class cl, final String method,

final String result)

{

try

{

XposedHelpers.findAndHookMethod(cl, method,

new Object[] { new XC_MethodHook()

{

protected void afterHookedMethod(MethodHookParam param)

throws Throwable

{

param.setResult(result);

}

} });

} catch (Throwable e)

{

Logger.d("修改" + method + "失败!" + e.getMessage());

}

}

}

6.在android sdk build-tools 21.0.1下可能遇到由于assets产生Command-line Error -1073741819的问题,升级一下android sdk build-tools就行了。

源代码下载:

xposed android id修改,Xposed模块开发:修改设备IMEI相关推荐

  1. Android开发之ApiCloud模块开发之模块引用第三方库的问题

    因为现在第三方库比较多,所以很多人为了快速开发导致库用烂大街了,但是在模块开发中本人不建议使用第三方库的依赖会有很多问题,要么是资源图片找不到,要么是布局找不到啥的,但是有的需求只有第三方库怎么办呢? ...

  2. Xposed模块开发:修改设备IMEI

    1.下载XposedBridgeApi-54.jar,将它放在libs目录下面,并右击将jar包添加到构建路径 2.AndroidMenifest.xml文件里添加三个meta-data数据 < ...

  3. Android开发之ApiCloud模块开发步骤

    看图操作,简单明了: 好了apicloud模块开发完成,你可以打包arr文件压缩zip后上传到自定义模块然后别人用js就可以引用你开发的这个模块里面的内容了 打包arr文件压缩zip步骤如下图: 上传 ...

  4. Android开发之ApiCloud模块开发的注意事项

    经过本人多次模块制作打包上传基本总结模块开发的以下坑: 一.模块开发SDK最小版本必须为9,不然就算你SDK模块开发完毕正常运行你在后台云编译也无法通过会报错,提示 minSdkVersion9小于你 ...

  5. android 4.4 wifi 模块开发总结(电视盒子)

    最近6.0的盒子的应用开发已经告一段落了,接到的新需求就是想办法让公司以前发出去的4.4的盒子也得兼容应用.把应用装到4.4盒子上,发现也就文件读取,网络(有线无线),蓝牙,恢复出厂设置这几个模块不能 ...

  6. uni-app实战之社区交友APP(14)用户交互模块开发

    文章目录 前言 一.修改资料模块开发 1.编辑头像API开发 2.修改用户信息API开发 3.修改密码API接口开发 二.黑名单模块开发 1.数据表设计 2.加入黑名单API开发 3.移出黑名单API ...

  7. Xposed模块开发入门,实现修改微信钱包显示的余额

    一.什么是Xposed框架 Xposed框架是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作. 二.为你的安卓设备 ...

  8. Xposed 模块开发入门

    Xposed模块开发入门 阅读本文之前,你应该准备好以下事项: 安装 Android Studio,并完成配置 掌握 Xposed 的安装和使用方法 拥有阅读 Java 代码的能力 阅读本文之后你将掌 ...

  9. Xposed模块开发指南

    1.Xposed框架是什么? Xposed框架是一款开源框架,其功能是可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运行. ...

  10. Xposed模块开发入门-最基本的项目创建

    本人结合网络上的种种教程以及自己实践,记录下一个完整的基本Xposed模块项目的创建过程. 开发环境: Mac系统 AndroidStudio 3.2.1 gradle 3.2.1 VirtualXp ...

最新文章

  1. javascript编写_如何通过编写自己的Web开发框架来提高JavaScript技能
  2. 有赞搜索引擎实践(算法篇)
  3. 【Python】Python入门-字符串初相识
  4. Unity Android解决信息流广告关闭报错
  5. 神奇的机械动态图,看了一遍又一遍!最后一个真神奇~
  6. python基础作业_017--python基础作业
  7. 2021年PMP考试模拟题11(含答案解析)
  8. 对CMSIS的学习(第1-3部分)
  9. 用C语言实现传递闭包(warshall算法)
  10. autoit3 ie.au3 函数之——_IEErrorNotify
  11. 短视频运营的目标:引流并转化客户
  12. oracle系统优化
  13. PG 异常状态- active+undersized+degraded
  14. 刷新存储器的容量单位是什么_存储器存储容量怎么算
  15. APP逆向分析之XX音乐客户端下载歌曲权限绕过
  16. 阿里云漏洞敏捷管理自动化报告
  17. 到底什么是对象,什么是对象的引用?对象和对象的引用有那些区别?
  18. 轰动世界的10大营销理念
  19. File System 定额(配额查询)
  20. 数值分析-龙格库塔法

热门文章

  1. 教你如何使用win7系统屏幕键盘--win7w.com
  2. 计算机随机数是如何生成的?(平分取中法、线性同余法)
  3. python语言磁力搜索引擎源码公开,基于DHT协议
  4. MATLAB 如何使用pascal函数创建Pascal(帕斯卡)矩阵
  5. 下载在线播放的电影,一个下载TS文件的工具,python小白。
  6. IBM 存储管理软件IBM DS Linux Storage Manager安装(Linux)
  7. 多年 iOS 开发经验总结
  8. 信息论与编码冯桂周林著答案_信息论与编码(信息与通信工程高等学校电子信息类专业系列教材)...
  9. bp神经网络模型的优缺点,什么是BP神经网络模型?
  10. linux启动报错23修复