目录

1.MainActivity.java

2.AndroidManifest.xml

3.build.gradle

4. assets 下 xposed_init

5.XposedInit.java

6.XposedInit Kotlin 版本

7.效果图

8.学习资料


1.MainActivity.java

public class MainActivity extends AppCompatActivity {private TextView tv;private static final String[] permissionsGroup = new String[]{permission.READ_PHONE_STATE};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv = findViewById(R.id.tv);tv.setText("tv");}}

2.AndroidManifest.xml

  <application><meta-dataandroid:name="xposedmodule"android:value="true" /><!--模块说明,一般为模块的功能描述--><meta-dataandroid:name="xposeddescription"android:value="这个模块是用来检测用户隐私合规的,在用户未授权同意前,调用接口获取信息属于违规" /><!--模块兼容版本--><meta-dataandroid:name="xposedminversion"android:value="53" /></application></manifest>

3.build.gradle

 provided 'de.robv.android.xposed:api:82'

4. assets 下 xposed_init

包名+文件名

com.klicen.myapplication.XposedInit

5.XposedInit.java

package com.klicen.myapplication;import android.os.Bundle;
import android.widget.TextView;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
import java.lang.reflect.Field;class XposedInit2 implements IXposedHookLoadPackage {@Overridepublic void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {if (lpparam.packageName == "com.klicen.myapplication") {XposedHelpers.findAndHookMethod("com.klicen.myapplication.MainActivity",lpparam.classLoader, "onCreate", Bundle.class, new XC_MethodHook() {@Overrideprotected void beforeHookedMethod(MethodHookParam param) throws Throwable {super.beforeHookedMethod(param);}@Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {Class c = lpparam.classLoader.loadClass("com.klicen.myapplication.MainActivity");Field field = c.getDeclaredField("tv");field.setAccessible(true);XposedBridge.log("Test");TextView tv = (TextView) field.get(param.thisObject);tv.setText("new");}};}}
}

6.XposedInit Kotlin 版本

class XposedInit : IXposedHookLoadPackage {override fun handleLoadPackage(lpparam: LoadPackageParam) {if (lpparam.packageName == "com.klicen.myapplication") {XposedHelpers.findAndHookMethod("com.klicen.myapplication.MainActivity",lpparam.classLoader, "onCreate", Bundle::class.java, object : XC_MethodHook() {override fun beforeHookedMethod(param: MethodHookParam) {super.beforeHookedMethod(param)}override fun afterHookedMethod(param: MethodHookParam) {val c = lpparam.classLoader.loadClass("com.klicen.myapplication.MainActivity")val field = c.getDeclaredField("tv")field.isAccessible = trueXposedBridge.log("Test")val tv = field[param.thisObject] as TextViewtv.text = "new"}})}}
}

7.效果图

8.学习资料

  1. Xposed学习资料 : https://juejin.cn/post/6844903593628139528
  2. VirtualXposed源码 :https://github.com/android-hacker/VirtualXposed/blob/vxp/CHINESE.md
  3. 工具包下载(必须):https://pan.baidu.com/s/15_QuLmnUhYDXSXaHyGa_8w  1ag9
  4. android 获取imei_Android隐私API合规策略及检测方法 https://blog.csdn.net/weixin_42430341/article/details/113043216

创建一个xposed模块Demo相关推荐

  1. (Xposed)编写第一个Xposed模块

    编写第一个Xposed模块 1.创建项目 在创建项目时,选择一个有MainActivity的项目,要是注册空项目还要自己去注册入口activity 2.添加Xposed提供的jar到lib目录 3.修 ...

  2. android+xposed+实例,Android Studio 上第一个 Xposed 模块(示例代码)

    环境: 已root手机一枚 Android Studio一枚 官方文档参考 这里 . 准备工作 我们需要事先下载一个 Xposed installer 安装在手机上,用来管理所有的模块. 安装完成后打 ...

  3. Xposed模块开发指南

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

  4. 《移动安全》(8)为挂钩而战-Xposed模块编写

    1.Xposed框架 Xposed是Android平台上的一个常用的HOOK框架,可以在不改变程序源代码的前提下,影响程序的运行.一个支持Xposed的Android应用程序被称为一个Xposed模块 ...

  5. xposed模块编写教程_最新的Xposed模块编写教程

    前言:最近看了很多的Xposed的入门教程,根据的我的实践,写此教程,希望对新手有所帮助. 1.编写一个被Hook的App.代码 1 packagecom.example.hookdemo;2 3 i ...

  6. Xposed模块开发

      最近突然看到了Xposed这一项技术,觉得蛮有意思的,现在的蚂蚁森林自动收能量以及微信自动回复等都是通过这个来实现的,因此记录一下Xposed的基本实现. Xposed框架介绍 概述   Xpos ...

  7. xposed模块编写教程_新手不要再被误导!这是一篇最新的Xposed模块编写教程

    在互联网上,关于Xposed模块编写的教程可谓是一抓一大把.但由于时间的推移,很多工具和方法都发生了变化(如Eclipse退出安卓编程舞台,AndroidStudio 不断升级导致其一些设置也随之变化 ...

  8. Xposed 模块开发入门

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

  9. (译)Xposed模块开发教程

    (译)Xposed模块开发教程 原文地址.这是开发者所写的,可以说是官方开发指南.文章讲述了Xposed的原理,以及怎么开发Xposed框架的模块.头一次翻译技术文档,有错误的话请多包涵. 好了,你想 ...

最新文章

  1. nodejs图片转换字节保存
  2. statTarget-基于QC样本的代谢组学数据校正
  3. 红帽计划收购API管理领导者3scale
  4. 架设自己的WebDAV服务器作为AutoCAD WS的数据存储
  5. 系统性能检测工具之lsof
  6. 做人,你想过这四个致命的问题吗
  7. 无监督学习:异常检测与剔除(局部异常因子法 SVM异常检测器)
  8. LeetCode----13. 罗马数字转整数
  9. javamail程序源码_JavaMail可能是邪恶的(并迫使您重新启动应用程序服务器)
  10. STM32H743+CubeMX-定时器TIM输出PWM(Out Compare模式) + 中断
  11. 必知必会SQL(贰) --索引(聚集[簇]索引和非聚[簇]集索引) vs 全文本索引
  12. LINUX下的FTP服务器
  13. LimeSurvey的使用和简单的二次开发
  14. eyoucms使用入门 二
  15. 8. 求 s=a+aa+aaa+aaaa+aa…a 的值
  16. 纳德拉:没有Excel的世界是无法想象的
  17. Eclipse 绿豆沙
  18. 5 个改善代码可读性的方法
  19. 安卓手机版微信聊天加密软件 悬浮窗版本
  20. C# 二维码 和条形码生成

热门文章

  1. 水瓶座|水瓶座性格分析
  2. Spring包下Pageable的使用 2
  3. iOS新闻类App内容页技术探索
  4. 【基于深度学习的细粒度分类笔记2】弱监督学习下商品识别:CVPR 2018细粒度识别挑战赛获胜方案简介
  5. 第七届河南省程序设计大赛——A 海岛争霸
  6. SpringBoot 自动装配原理解析
  7. Python开发指南[1]之程序员计时小时钟(附源码)
  8. Thales Speakers Bureau:专家云集,将探讨量子技术、5G、数字身份、网络安全和人工智能
  9. 基于Python实现的微信好友数据分析——抓取好友性别、位置、头像签名
  10. 适配新路由3(D2)的LEDE/OpenWrt固件