Android2.2 模拟器使用&文件系统提取

一.模拟器使用

进入 tools目录   

#cd /home/h3/myandroid/out/host/linux-x86/sdk/android-sdk_eng.h3_linux-x86/tools

在这里有很多Android的工具,其中模拟器对应的应用程序是emulator。

下面是正确使用模拟器的步骤:

 

1 创建在当前目录下输入
    #./android create avd -n h3 -t 1
    这个命令会进入创建avd的过程,有许多自定义选项,这里只是测试能否正常运行,直接按Enter,(在以后可以按自己的需要做出一些选择,创建自定义的avd)名称为h3的avd就创建成功了。

1.4之前的版本我没试过,但1.5版本后不正确创建就无法使用。avd是android virtual machine的缩写。

 

2 检查和运行创建的avd

    #./android list avd
    输入命令来检查创建是否成功,如果成功会列出来。其他命令的使用可查看。./android -h

3 运行avd


    #./emulator -avd h3
    启动刚才创建的名为h3的模拟器,使用的内核,文件系统等均使用默认的,

    即/home/h3/myandroid/out/host/linux-x86/sdk/android-sdk_eng.h3_linux-x86/platform/路径下的内核和文件系统。

    如果创建成功的话,就可以看到可爱的Android操作系统的虚拟界面了。

    外形可以更换的,就好像qq一样可以更换皮肤。有兴趣的话,可以网 上查一下做法。

二. 文件系统提取

     Android运行在开发板上的文件系统,是要依靠模拟器来提取的,具体的操作如下:

1. 因为我们需要将模拟器运行在一个带SDcard的虚拟设备上,所以创建一个虚拟的sdcard
    #cd /home/h3/myandroid/out/host/linux-x86/sdk/android-sdk_eng.h3_linux-x86
    #./mksdcard -l sd200M 200M /home/h3/sdcard.img

    这里使用mksdcard工具在/home/h3目录下建立一个容量为200M的sdcard.img,可以查看一下是否生成,如果成功了,就可以看到了            在/home/h3下有sdcard.img

    #ls /home/h3

sdcard.img是用于模拟器中数据和外部数据的交换,虚拟SD卡的大小不应该小于100M,否则在后期的文件系统打包过程中,有可能会有SD卡存储空间不够的问题。

2.创建一个名为cupcake的,附带有sdcard的虚拟设备。

#./android create avd -n cupcake -t 1 -c /home/h3/sdcard.img

3.运行带sdcard的avd

#./emulator -avd cupcake -sysdir /home/h3/myandroid/out/target/product/generic -data /home/h3/myandroid/out/target/product/generic/userdata.img -ramdisk /home/h3/myandroid/out/target/product/generic/ramdisk.img -kernel /home/h3/myandroid/prebuilt/android-arm/kernel/kernel-qemu

    运行我们刚才创建的cupcake虚拟设备,并规定系统,数据等的映象文件路径等。

    模拟器内核采用/home/h3/myandroid/prebuilt/android-arm/kernel/kernel-qemu 

    也可以指向自己编译的内核镜像。

4. 使用工具从运行的模拟器中获取文件系统,并放到sdcard中

    打开一个新的终端输入:
    #cd /home/h3/myandroid/out/host/linux-x86/sdk/android-sdk_eng.h3_linux-x86/tools


    使用adb工具的remount选项来使模拟器中的system目录权限改为可读写。

     #./adb remount

    使用adb工具的push指令将提前使用busybox做好的tar应用程序加入到模拟器的/system/bin目录下。关于busybox的使用这里不作介绍,可以自己看看网上的文章。

     #./adb push tar /system/bin

   
    使用adb工具进入到模拟器的shell中去

     #./adb shell

    进入到Android模拟器的shell之后,输入如下:

    #tar cvf /sdcard/system.tar /system
    #tar cvf /sdcard/userdata.tar /data

这里使用前面加入到模拟器中的tar应用程序来对system和data目录下所有内容进行打包,并存储到sdcard里。操作结束后,进入sdcard 目录下查看是否有了system.tar和userdata.tar文件,如果有,则证明打包成功。          

   退出shell,并关闭模拟器。

    #exit

将虚拟SD卡挂载在/mnt目录下,进入/mnt目录后,就可以将system.tar和userdata.tar拷贝出来,那么文件系统的提取就完成了。

    #mount –o loop sdcard.img /mnt
    #cd /mnt

网上有人说,使用android提供的mkyaffsimage直接对/out/target/product/generic /system目录进行打包,制作出system.img也是可以使用,但userdata.img如何制作,我没有找到,有待解决。

但使用 mkyaffs2image制作文件系统映像时要注意的是一些配置文件的权限问题,比如/system/usr/keylayout下的文件权限就有问题,需要修改,否则生成的映像在模拟器中加载后,键盘等无法正常使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值