从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家) ! 支持HackTricks的其他方式:
如果您想看到您的公司在HackTricks中做广告 或下载PDF格式的HackTricks ,请查看订阅计划 !
非常感谢@offsecjay 在创建此内容时提供的帮助。
什么是
Android Studio允许运行Android的虚拟机,用于测试APK文件 。为了使用它们,您将需要:
或者Android Studio (带有Android SDK工具) - 在此处下载 。
在Windows(我的情况下)安装Android Studio后 ,我将SDK工具安装在 :C:\Users\<UserName>\AppData\Local\Android\Sdk\tools
在mac上,您可以下载SDK工具 并将其添加到PATH中运行:
复制 brew tap homebrew/cask
brew install --cask android-sdk
或者从Android Studio GUI 中按照https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a 中指示的步骤安装它们到~/Library/Android/sdk/cmdline-tools/latest/bin/
和~/Library/Android/sdk/platform-tools/
以及~/Library/Android/sdk/emulator/
对于Java问题:
复制 export JAVA_HOME =/ Applications / Android\ Studio . app / Contents / jbr / Contents /Home
GUI
准备虚拟机
如果您已安装Android Studio,只需打开主项目视图并访问:工具 --> AVD 管理器 。
然后,点击 创建虚拟设备
选择 您想要使用的手机 ,然后点击 下一步 。
如果您需要安装了 Play Store 的手机,请选择带有 Play Store 图标的手机!
在当前视图中,您将能够选择并下载手机将运行的 Android 映像 :
因此,请选择它,如果尚未下载,请单击名称旁边的 下载 符号(现在等待映像下载完成) 。
一旦映像下载完成,只需选择 下一步
和 完成
。
虚拟机将被创建。现在每次访问 AVD 管理器时,它都会出现 。
运行虚拟机
为了运行 它,只需按下 启动按钮 。
命令行工具
首先,您需要决定要使用哪款手机 ,以查看可能的手机列表,请执行:
复制 C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list device
d: 0 or "automotive_1024p_landscape"
Name: Automotive (1024p landscape)
OEM : Google
Tag : android-automotive-playstore
---------
id: 1 or "Galaxy Nexus"
Name: Galaxy Nexus
OEM : Google
---------
id: 2 or "desktop_large"
Name: Large Desktop
OEM : Google
Tag : android-desktop
---------
id: 3 or "desktop_medium"
Name: Medium Desktop
OEM : Google
Tag : android-desktop
---------
id: 4 or "Nexus 10"
Name: Nexus 10
OEM : Google
[...]
一旦您决定要使用的设备名称,您需要决定要在此设备上运行的Android映像。
您可以使用sdkmanager
列出所有选项:
复制 C:\Users\ <UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list
并使用以下命令下载您想要使用的一个(或全部):
复制 C:\Users\ <UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat "platforms;android-28" "system-images;android-28;google_apis;x86_64"
一旦你下载了想要使用的Android映像,你可以使用以下命令列出所有已下载的Android映像 :
复制 C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list target
----------
id: 1 or "android-28"
Name: Android API 28
Type: Platform
API level: 28
Revision: 6
----------
id: 2 or "android-29"
Name: Android API 29
Type: Platform
API level: 29
Revision: 4
此刻,您已经决定要使用的设备,并已下载了Android映像,因此您可以使用以下命令创建虚拟机 :
复制 C:\Users\ <UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat -v create avd -k "system-images;android-28;google_apis;x86_64" -n "AVD9" -d "Nexus 5X"
在上一个命令中,我使用设备 “Nexus 5X ”和Android映像 “system-images;android-28;google_apis;x86_64 ”创建了一个名为“AVD9 ”的虚拟机。
现在,您可以使用以下命令列出您创建的虚拟机 :
复制 C:\Users\ <UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list avd
Name: AVD9
Device: Nexus 5X (Google)
Path: C: \U sers \c polo \. android \a vd \A VD9.avd
Target: Google APIs (Google Inc. )
Based on: Android API 28 Tag/ABI: google_apis/x86_64
The following Android Virtual Devices could not be loaded:
Name: Pixel_2_API_27
Path: C: \U sers \c polo \. android \a vd \P ixel_2_API_27_1.avd
Error: Google pixel_2 no longer exists as a device
运行虚拟机
我们已经看到您可以列出已创建的虚拟机,但您也可以使用以下命令列出它们 :
复制 C:\Users\ <UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
AVD9
Pixel_2_API_27
您可以简单地使用以下命令运行创建的任何虚拟机 :
复制 C:\Users\ <UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "VirtualMachineName"
C:\Users\ <UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9"
或者使用更高级的选项,您可以运行一个虚拟机,如:
复制 C:\Users\ <UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
命令行选项
然而,有许多不同的命令行有用选项 可用于启动虚拟机。下面您可以找到一些有趣的选项,但可以在此处找到完整列表
启动
-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
:列出所有记录的快照
网络
-dns-server 192.0.2.0, 192.0.2.255
:允许指定逗号分隔的 DNS 服务器给虚拟机。
-http-proxy 192.168.1.12:8080
:允许指定要使用的 HTTP 代理(非常有用以捕获流量使用 Burp)
-port 5556
:设置用于控制台和 adb 的 TCP 端口号。
-ports 5556,5559
:设置用于控制台和 adb 的 TCP 端口。
-tcpdump /path/dumpfile.cap
:将所有流量捕获到文件中
系统
-selinux {disabled|permissive}
:在 Linux 操作系统上将安全增强型 Linux 安全模块设置为禁用或宽松模式。
-timezone Europe/Paris
:为虚拟设备设置时区
-screen {touch(default)|multi-touch|o-touch}
:设置模拟触摸屏模式。
-writable-system
:使用此选项在仿真会话期间拥有可写系统映像。您还需要运行 adb root; adb remount
。这对于在系统中安装新证书非常有用。
对 Play 商店设备进行 Root
如果您下载了带有 Play 商店的设备,则无法直接获取 root 权限,您将收到此错误消息
复制 $ adb root
adbd cannot run as root in production builds
使用rootAVD 与Magisk ,我成功对其进行了root操作(请参考此视频 或 这个视频 )。
安装Burp证书
查看以下页面以了解如何安装自定义CA证书:
Install Burp Certificate AVD的有用选项
拍摄快照
您可以使用GUI 随时拍摄虚拟机的快照:
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert) ! 支持HackTricks的其他方式:
如果您想在HackTricks中看到您的公司广告 或下载PDF格式的HackTricks ,请查看订阅计划 !