是否可以将设备 ROM 闪存到 AVD 模拟器或 genymotion?

Posted

技术标签:

【中文标题】是否可以将设备 ROM 闪存到 AVD 模拟器或 genymotion?【英文标题】:Is it possible to flash a device ROM to a AVD emulator or genymotion? 【发布时间】:2016-05-05 12:18:42 【问题描述】:

我正在解决 android 开发的一些兼容性问题,我的 Android 应用程序在一个罕见的设备 ROM 上崩溃了,它修改了一些框架(app.widget)代码导致崩溃。

我想在没有设备的情况下自行重现崩溃,我不拥有设备并且无法轻松获得合适的设备,除了 2 手市场。

但是我可以从设备的论坛(system.img,userdata.img)下载ROM,我可以直接将ROM刷到AVD或Genymotion吗?有什么指南可以实现吗?

【问题讨论】:

"我可以直接将 ROM 刷到 AVD 或 Genymotion 吗?" - 我对此表示怀疑。毕竟,模拟器不是硬件,ROM 中会有硬件驱动程序期望与硬件一起工作。 不是先尝试重现,而是确切的错误是什么? @JonasKöritz 这是 ROM 指定错误,因为 ROM 的框架代码(TextView 的东西)与普通代码略有不同。我的自定义 TextView 扩展了 TextView,会使选择逻辑在指定的一系列操作中崩溃。我已经找到了崩溃的原因,并使用反射在ROM中防止它,通过转储ROM的框架代码找到原因。将其映射到异常堆栈。 【参考方案1】:

简单的回答:不,你不能。设备 ROM 完全是设备特定的。 Genymotion 在 x86(您的计算机)上运行,在大多数情况下,它与您的设备的架构不同。即使您可以将此“闪存”到 genymotions“Flash-Storage”,包括内核和引导加载程序在内的任何可执行文件都无法启动。

【讨论】:

以上是关于是否可以将设备 ROM 闪存到 AVD 模拟器或 genymotion?的主要内容,如果未能解决你的问题,请参考以下文章

如何模拟 USB 闪存驱动器并同时读取数据

在 AVD 设备上检测 chromecast

在 AVD 模拟器中如何查看 sdcard 文件夹并将 APK 安装到 AVD?

创建Android虚拟设备(AVD)

Android 10 根文件系统和编译系统:Android ROM镜像介绍

像素 2 模拟器/虚拟设备不在 AVD 管理器设备列表中