首页
社区
课程
招聘
[原创]在Android AVD中安装Xposed框架
发表于: 2016-11-21 14:13 5029

[原创]在Android AVD中安装Xposed框架

2016-11-21 14:13
5029
目前版本(25.2.2)的Android SDK Tools中包含的emulator发生了改变,原有方法已部分失效。在原有方法中,我们不需要创建Android Virtual Device,而是直接将各个镜像文件作为参数传给emulator程序即可。然而当前的emulator已不再支持这种启动模式。根据Android的官方文档,-avd <avd_name> 或 @<avd_name>参数是必须的,用于选定需要加载的AVD。因此,我们在启动模拟器之前必须先创建AVD。本文将以Linux环境,Android API 19为例,其他平台应可使用类似的方法。

本文的前提假设:
  • Linux操作系统
  • 已安装满足需求的JDK
  • 已释放Android SDK并将相应目录加入PATH环境变量
  • 已获取得到适用于目标Android版本的Xposed Installer APK文件

0. 创建AVD
创建AVD可以在IDE中进行或在terminal中通过输入命令的方式进行。在此仅介绍在terminal中创建AVD的方式。

0.1 执行"android"命令,打开Android SDK Manager,选择下载目标版本的System Image。

0.2 执行"android list target"命令,获取相应target在本地对应的id。

0.3 执行"android create -n [avdName] -t [id]"命令创建AVD,目前使用默认设置即可。

0.4 执行"emulator @[avdName]"命令即可启动模拟器并载入该AVD,保持模拟器运行。

1. 安装Xposed framework
与之前相同,system.img默认为只读挂载,且通过使用临时文件的方式使对system.img的写入不被持久保存。与之前不同的是,由于现在是使用载入已创建的AVD的方式启动模拟器,因此其system.img等镜像文件需要被存放在特定位置。

1.1 在模拟器启动完成后,执行"adb remount"命令将/system(及如果存在的/vender和/oem)分区由只读模式重挂载为可读写模式。

1.2 安装Xposed Installer应用并启动应用。

1.3 解压Xposed Installer的APK文件。在assets目录下找到XposedBrige.jar,将其push至 /data/data/de.robv.android.xposed.installer/bin目录下; 根据模拟器系统镜像的架构,在assets/arm或assets/x86找到app_process_xposed_sdk[xx],其中[xx]为API编号,选择其中编号最为符合target API的,将其push覆盖/system/bin/app_process文件,并修改权限为-rwxr-xr-x (755)。

1.4 执行"adb shell",进入/system目录,执行"sync"命令以确保对其修改被保存至文件。

1.5 在host端,进入[sdk_dir]/system-images/android-19目录,其中sdk_dir是sdk的目录。复制其下default目录到当前目录,并将其重新命名为modified(可任意命名)。

1.6 在/tmp/android-[username]目录下找到emulator-[random_string]文件,其中username是当前登录的用户名,random_string是一串随机的字符串。将其复制至[sdk_dir]/system-images/android-19/modified/armeabi-v7a目录下,覆盖system.img。其中modified为上一步骤中复制创建的目录,armeabi-v7a为系统镜像架构,x86镜像请自行寻找相应目录。

1.7 进入该AVD对应的目录,默认情况下位于/home/[username]/.android/avd/[avdName].avd目录中,修改其中config.ini文件中的image.sysdir.1项,由system-images/android-19/default/armeabi-v7a修改为system-images/android-19/modified/armeabi-v7a

1.8 关闭模拟器并重新启动模拟器,在Xposed Installer中可看到两个文件都已激活。(可能会提示框架尚未成功安装,在安装Xposed模块并重启后该错误的提示即消失)

至此,在Android AVD中安装Xposed框架已成功完成。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回