I downloaded a third-party ROM, and I want to run it on the emulator first before flash it into the phone. Here is the contents of cm-11-20140911-NIGHTLY-p3110.zip:

1. boot.img

2. file_contexts

3. META-INF/

4. recovery/

5. system/

I unpacked boot.img using the script unpack-bootimg.pl and get boot.img-kernel, and boot.img-ramdisk.cpio.gz. Then I repacked the system using the make_ext4fs and got system.img.

I created an AVD and execute:

emulator -system ~/cm11/system_new.img -ramdisk ~/cm11/boot.img-ramdisk.cpio.gz -kernel ~/cm11/boot.img-kernel -avd and442

but all I got is nothing, the emulator screen is just black. There is no log message from adb -s emulator-5554.

Now I am confused:

can the third-party ROM be tested by the emulator?

Am I doing the right way?

解决方案

Yeah why not.

We can flash third party ROM on android AVD. But first you must know the following things:

1. Android Emulator is itself a device like your Moto G or Xperia

2. Ever ROM is device specific (Support device specific Kernel)

(on many sites/blogs you got info like you have to replace system.img file from .android\avd\avdname.avd but it is technically incorrect because you also requird ramdisk.img.)

To do this you need to create your own AOSP repo by downloading particular repo and have to build your own .img files)

You can do it by 2 ways :

replace files system.img & ramdisk.img from location .android\avd\avdname.avd

build your own AOSP. before.. make in "lunch" select target as: Emulator(like: genericX86) i.e generate all emulator specific .img files

I have tried many things , Its bit critical but interesting, following links may help you:

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐