如何制作安卓用的Ubuntu for arm的sd卡量产img镜像像

Android 解压和重新打包system.img_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Android 解压和重新打包system.img
来源:Linux社区&
作者:whu_zhangmin
开始我们的工作前,请记住,Linux一定要学会用file命令分析文件类型,这样才好入手,否则错了都不知道怎么回事!!!
1、解压system.img
先用file命令查看system.img的文件类型
file system.img
&system.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (needs journal recovery) (extents) (large files)
看到没 ext4 filesystem data
那好办,采用挂载分区的方式来打开system.img文件
mount -t ext4 -o loop system.img& systemimg& & //此命令的意思将system.img镜像文件挂载到systemimg目录
cd systemimg
标准的文件结构就出来了,里面可以&随意&定制
2、重新打包生成system.img
打包命令:
./make_ext4fs -l 1024M -s -a system system_new.img systemimg
参数解析:1024M代表你要打包的system.img大小,这个值可以参考挂载前system.img的大小
"-a system",是指这个img用于android系统,挂载点是/system,使用这个参数,make_ext4fs会根据private/android_filesystem_config.h里定义好的权限来给文件夹里的所有文件重新设置权限,如果你刷机以后发现有文件权限不对,可以手工修改android_filesystem_config.h来添加权限,重新编译make_ext4fs,也可以不使用 &-a system&参数,这样就会使用文件的默认权限。
system_new.img代表新生成的img
systemimg就是上面挂载后的目录
一般很多人认为这样生成的system_new.img就可以用了,其实不然
再次用file命令查看文件类型
file system_new.img
&system_new.img: data
跟之前的输出截然不同,这显然不是ext4文件类型,啥情况???
方法就是继续使用simg2img工具将其转换成真正的ext4文件
./simg2img system_new.img system_out.img
得到system_out.img
file system_out.img
system_out.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)
怎么样?这次得到的img就是ext4了吧?ok,那么这个system_out.img就是我们重新打包生成的img了,这就可以烧到手机里面看看效果了。。。
PS:上面提到的make_ext4fs simg2img等工具在android环境的out/host/linux-x86/bin目录下。
更多Android相关信息见 专题页面
本文永久更新链接地址:
相关资讯 & & &
& (12/18/:01)
& (01/29/:35)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款Android 源码编译 文件系统制作 - arm-linux - 博客园
Android Source Code Download   TOP Website   android 的最新源代码下载的官方网站是:   源代码的下载说明页面是:/download (现在貌似用还用不了)   现在的网站是   TOP Create Directory   在HOME(/home/justin)目录下创建如下目录结构:   /home/justin/android :   总计 36   drwxr-xr-x 7 justin justin
10:34 .   drwxr-xr-x 58 justin justin
10:39 ..   drwxr-xr-x 2 justin justin
10:34 applications   drwxr-xr-x 2 justin justin
10:33 downloads   drwxr-xr-x 2 justin justin
12:34 bin   drwxr-xr-x 2 justin justin
10:33 sdk   drwxr-xr-x 2 justin justin
10:33 src   drwxr-xr-x 2 justin justin
10:34 tools   将该目录添加到PATH环境变量:   export PATH=$HOME/android/bin:$PATH   如果需要反复使用,需要将这一行加入~/.bashrc启动脚本中   TOP Donwload Tool Chain   TOP Git   Git的版本在1.5.4之上   sudo apt-get install git-core   TOP Proxy   安装代理软件:   apt-get install connect-proxy   Repo   repo是包装了git命令的python   脚本:   curl http://android.git.kernel.org/repo & ~/android/bin/repo   网关内部需要设置curl代理   假设网段的(http)代理为:wwwgate.freeshell.net:8080   curl --proxy wwwgate.freeshell.net:8080 http://android.git.kernel.org/repo & ~/android/bin/repo   加上可执行权限   chmod a+x ~/android/bin/repo   Python   Python的版本在2.4之上   sudo apt-get install python   JDK 1.6   在下列地址下载: /javase/downloads 解压得到如下文件: ~/android /downloads/jdk-6u11-linux-i586.bin   cd ~/android/downloads   chmode a+x jdk-6u11-linux-i586.bin   运行这个可执行文件, 将生成的目录jdk1.6.0_11拷贝到/usr/local/下   将下列环境变量加入~/.bashrc:   export PATH=/usr/local/jdk1.6.0_11/bin:$PATH   export JAVA_HOME=/usr/local/jdk1.6.0_11   export ANDROID_JAVA_HOME=$JAVA_HOME   tools   sudo apt-get install gcc g++   sudo apt-get install flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev /   build-essential zip curl libncurses5-dev zlib1g-dev valgrind libreadline5-dev   如果因为缺少X11/Xatom.h和X11/Xlib.h导致的build失败,   可以安装如下包:   sudo apt-get install x11proto-core-dev # provides Xatom.h   sudo apt-get install libx11-dev # provides Xlib.h   交叉编译环境   android emulator 默认的目标代码是arm7的代码。如果需要将目标代码移植到其他版本的arm平台上去,需要重新配置相应的交叉编译环境。   TOP 下载Android平台源代码   1. 初始化要下载的文件列表:   cd ~/android/src   repo init -u git://android.git.kernel.org/platform/manifest.git   如果想检出除master外其他分支上的代码可以用-b选项:   cd ~/android/src   repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake   2. 配置git帐户   git config --global user.email "xxxxx@xxxxxxx"   git config --global user.name "xxxxxx"   3. 同步文件列表:   repo sync   在第一次下载全部代码完成后,可以按模块更新子项目的代码:   repo sync project-path   其中的project-path可以在src/.repo/manifests/default.xml中找到:   &?xml version="1.0" encoding="UTF-8"?&   &manifest&   &remote name="korg"   fetch="git://android.git.kernel.org/"   review="review." /&   &default revision="master" remote="korg" /&   &project path="build" name="platform/build"&   &copyfile src="/qz.q/core/root.mk" dest="Makefile" /&   &/project&   &project path="kernel"   name="kernel/common"   revision="refs/heads/android-2.6.27" /&   &project path="bionic" name="platform/bionic" /&   &project path="bootable/bootloader/legacy" name="platform/bootable/bootloader/legacy" /&   &project path="bootable/diskinstaller" name="platform/bootable/diskinstaller" /&   &project path="bootable/recovery" name="platform/bootable/recovery" /&   ... ...   在网关内部使用需要设置代理:   新建如下文件: #!/bin/sh   # /home/justin/android/bin/socks-gw.sh
# This script connects to a HTTP proxy using connect.c   connect -H wwwgate.freeshell.net:8080 #!/bin/sh   # /home/justin/android/bin/socks-ssh.sh   ssh -o ProxyCommand="/home/justin/android/bin/socks-gw.sh %h %p" $@   增加这两个文件的可执行权限:   chmod a+x /home/justin/android/bin/socks-ssh.sh   chmod a+x /home/justin/android/bin/socks-gw.sh   可以将所有代理的环境变量放在:   #!/bin/sh   # /home/justin/proxy.sh   # http proxy setting   export HTTP_PROXY=http://wwwgate.freeshell.net:8080   export http_proxy=$HTTP_PROXY   # set git to use ssh over http proxy   export GIT_SSH="/home/justin/android/bin/socks-ssh.sh"   export GIT_PROXY_COMMAND="/home/justin/android/bin/socks- gw.sh"   需要的时候运行:   . ~/proxy.sh   编译Android平台以及SDK   完全编译   编译映像   cd ~/android/src   make   映像编译成功后会在目录~/android/src/out/target/product/generic   下产生一些image文件   ramdisk.img system.img userdata.img android -info.txt   验证,运行这些模块:   export ANDROID_PRODUCT_OUT=/home/justin/android/src/out/t arget/product/generic   cd out/host/linux-x86/bin   ./emulator   此时可能出现如下错误   SDL init failure, reason is: No available video device   需要设置下图形server   # export DISPLAY=:0   SDK编译   在做完一次完全编译后,就可以build SDK了。   make sdk   注意:如果需要build SDK,需要安装sun-java5-jdk, 而不是sun-java6-jdk,否则会出现如下错误:   build/core/product_config.mk:207: WARNING: adding test OTA key   ============================================   TARGET_PRODUCT=generic   TARGET_BUILD_VARIANT=eng   TARGET_BUILD_TYPE=release   TARGET_ARCH=arm   HOST_ARCH=x86   HOST_OS=linux   HOST_BUILD_TYPE=release   BUILD_ID=   ============================================   Combining NOTICE files: out/target/product/generic/obj/NOTICE.txt   Finding NOTICE files: out/host/linux-x86/obj/NOTICE_FILES/hash-timestamp   Combining NOTICE files: out/host/linux-x86/obj/NOTICE.txt   out/target/product/generic/generic-img-eng.justin. zip   SDK buildinfo: out/target/product/generic/sdk/sdk-build.prop   Docs droiddoc: out/target/common/docs/dx   此时,可以考虑重新安装sun jdk5, 或者直接从/javase/downloads   下载到~/android   /downloads/jdk-1_5_0_17-linux-i586.bin   sudo apt-get install sun-java5-jdk   并设置相应的.bashrc命令。   sdk编译成功后会在~/android /src /out/host/linux-x86/sdk/ 生成sdk的文件目录和压缩包:   android -sdk_eng.justin_linux-x86   android -sdk_eng.justin_linux-x86.zip   并在~/android /src /out/target/product/generic(generic是默认的产品名)下打包所有的映像文件:   generic-img-eng.justin.zip   生成的SDK目录结构为:   /home/justin/android/src/out/host/linux-x86/sdk/an droid-sdk_eng.justin_linux-x86:   总计 32   drwxrwx--- 6 justin justin
17:06 .   drwxr-x--- 3 justin justin
17:09 ..   drwxrwx--- 2 justin justin
17:06 add-ons   drwxrwx--- 14 justin justin
17:06 docs   -rw-rw---- 1 justin justin 172 02-13 17:08 documentation.html   drwxrwx--- 3 justin justin
17:06 platforms   -rw-rw---- 1 justin justin 225 02-13 17:08 RELEASE_NOTES.txt   drwxrwx--- 3 justin justin
17:08 tools   安装生成的SDK只需要在.bashrc中增加:   export PATH=$PATH:/home/justin/android/src/out/host/linux -x86/sdk/android-sdk_eng.justin_linux-x86/tools   为了使用方便,将生成的SDK目录链结至~/android   /sdk:   ln -sf /home/justin/android/src/out/host/linux-x86/sdk/an droid-sdk_eng.justin_linux-x86/tools /   ~/android/sdk   模块编译   在src目录执行:   cd ~/android/src   . build/envsetup.sh   envsetup.sh 提供了一些的bash函数定义,当运行了envsetup.sh后就可以使用help   命令来查看:   help   得到这些命令的帮助信息:   Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:   - croot: Changes directory to the top of the tree.   - m: Makes from the top of the tree. - mm: Builds all of the modules in the current directory.   - mmm: Builds all of the modules in the supplied directories   - cgrep: Greps on all local C/C++ files.   - jgrep: Greps on all local Java files.   - resgrep: Greps on all local res/*.xml files.   Look at the source to view more functions. The complete list is:   add_lunch_combo cgrep check_product check_variant choosecombo chooseproduct choosetype choosevariant croot findmakefile gd   bclient get_abs_build_var getbugreports get_build_var getprebuilt gettop help isviewserverstarted jgrep lunch m mm mmm pid   printconfig print_lunch_menu resgrep runhat runtest setpaths set_sequence_number set_stuff_for_environment settitle smoke   test startviewserver stopviewserver tapas tracedmdump   其中对模块的编译有帮助的是tapas、m、mm、mmm这几个命令。   1.tapas - 以交互方式设置build环境,以下是运行效果:   tapas   第一步,选择目标设备:   Build for the simulator or the device?   1. Device   2. Simulator   Which would you like? [1]   第二步,选择目标代码格式:Build type choices are:   1. release   2. debug   Which would you like? [1]   第三步,选择产品平台:   Product choices are:   1. emulator   2. generic   3. sim   You can also type the name of a product if you know it.   Which would you like? [generic]   第四步,在选用参数下构建平台。   2. 独立模块的构件命令   * m: Makes from the top of the tree.   * mm: Builds all of the modules in the current directory.   * mmm: Builds all of the modules in the supplied directories.   其中mmm后面要跟模块的根目录,不是所有的目录下都有子模块,那些含有Android.mk文件目录才是模块的根目录,模块名可以从 Android.mk的LOCAL_MODULE或者LOCAL_PACKAGE_NAME变量中得到。   单独编译某模块,需要在mmm后面指定模块路径,例如编译application中的Contacts:   mmm packages/apps/Contacts/   或者在src目录下直接运行make module name :   cd ~/android/src   make Contacts   TOP 增量编译的步骤   1. 修改代码   2. 编译所修改的代码所在模块,例如:   cd ~/android/src   mmm packages/apps/Contacts   3. 在~/android /src 中运行:   cd ~/android/src   make snod   该命令生成一个新的系统映像system.img   4.将这个系统映像拷贝至sdk下:   cd ~/android/src   cp out/target/product/generic/system.img /   out/host/linux-x86/sdk/android-sdk_eng.justin_linu x-x86/tools/lib/images/   5. 删除程序遗留的数据:   out/host/linux-x86/sdk/android-sdk_eng.justin_linu x-x86/tools/emulator -wipe-data   制作文件系统   Usually the Android uses YAFFS as rootfs and uses the mtd device as storage media, the bad blocks in the mtd device seldom cause YAFFS file system to work abnormally. if the Android uses NFS as the rootfs, there will not exist such problem. So here is the solution to use NFS as the rootfs of Android.   1. Setup host machine as NFS server (I will use ubuntu 8.0.4 as an example.).   $ sudo apt-get install nfs-kernel-server portmap   $ sudo mkdir /nfsroot   $ sudo vim /etc/exports   Add one line in /etc/exports,   /nfsroot 192.168.1.101(rw,no_root_squash ,sync)   Then restart NFS server.   $ sudo /etc/init.d/nfs-kernel-server restart Here setups an NFS server which exports /nfsroot directory only to 192.168.1.101(Which is the default IP address of Android eth0).   2. Build a Linux kernel image to use NFS as rootfs.   $make menuconfig   Modify the default setup. In "general setup" section, uncheck the "initial RAM filesystem and RAM disk(initramfs/initrd) support". In "file systems" section, check the "Network File Systems" and mark it as kernel built-in. In "boot options" section, add the kernel parameter "root=/dev/nfs nfsroot=192.168.1.100:/nfsroot init=/init ". 192.168.1.100 is the IP address of host machine running NFS server.   3. Modify init program.   To make log system work, in the device/system/init modify the device.c by change the statement '!strncmp(uevent-&path,"/class/misc/",12) && !strncmp(name, "log_", 4) to '!strncmp(name, "log_", 4) '.   4. Modify init.rc config file.   Comment out below statements   mount rootfs rootfs /ro remount   mount yaffs mtd@system /system   mount yaffs2 mtd@system /system ro remout&&mount yaffs2 mtd@userdata /data nosuid nodev   mount yaffs2 mtd@cache /cache nosuid nodev   5. Add the user id and group id used by android on the NFS server.   Android does not use /ect/passwd file to record the user name and user id, it uses a fixed method to map the user name to user id through the head file device/include/private/android_filesystem_config.h , e.g. the user "system" has the user id of 1000.   So to correctly set the file ownership(owner and group), the NFS server should have these users with correct user IDs. Such as system(1000). For ubuntu, you can call like this.   $sudo userdd -u 1000 android_system   6. This step is not necessary. It only allows you to display a user name in the develop machine. 6. Prepare the rootfs.   Assume the built output of device lies in device/out/target/product/***/, which is called $OUTPUTDIR later. Do the follwings:   $cp -rf $OUTPUTDIR/root/* /nfsroot   $cp -rf $OUTPUTDIR/system /nfsroot   $cp -rf $OUTPUTDIR/data /nfsroo   参考 http://mmmyddd.freeshell.net/wiki/android/build.ht ml#top4303人阅读
Android开发(128)
&&&&&& 接 (),编译好后在目录/media/娱乐/androidSource/out/target/product/generic 下有三个镜像文件:ramdisk.img, userdata.img, system.img,模拟器运行除了这三个镜像文件外,还需要/media/娱乐/androidSource/prebuilt/android-arm/kernel 目录下的kernel-qemu文件。为了运行模拟器,sudo gedit /etc/profile设置环境变量:export PATH=$PATH:/media/娱乐/androidSource/out/host/linux-x86/binexport ANDROID_PRODUCT_OUT=/media/娱乐/androidSource/out/target/product/generic&&&&&& 然后source /etc/profile. 启动模拟器的命令emulator就在/media/娱乐/androidSource/out/host/linux-x86/bin目录下,当emulator没有任何参数时会使用ANDROID_PRODUCT_OUT目录下的三个镜像及上面的kernel-qemu文件。终端运行emulator后就会启动模拟器,出现:emulator: WARNING: system partition size adjusted to match image file (163 MB & 66 MB) 这样的警告。也可以用如下命令指定内核和那三个镜像:emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img&&&&&& 上面的内核是google编译好的,为了自己编译内核需要自己下载内核源码。下载步骤:1,创建目录mkdir /home/yan/kernel, 在这个目录下,终端输入:git clone /kernel/goldfish.git会看到以下提示:Cloning into 'goldfish'...
remote: Sending approximately 499.97 MiB ...
remote: Counting objects: 41051, done
remote: Finding sources: 100% (144/144)
remote: Getting sizes: 100% (72/72)
remote: Compressing objects: 100% (839)
remote: Total 2442786 (delta 2048918), reused 2442751 (delta 2048913)
Receiving objects: 100% (2786), 499.75 MiB | 408 KiB/s, done.
Resolving deltas: 100% (9084), done.
这时kernel目录下有个goldfish目录,但里面是空的,有个隐藏文件.git,这时并未下载到内核,仅仅是创建了仓库[这时的goldfish文件夹有500M左右,压缩文件下载链接: 下载后,直接解压就可以按下面步骤选定下载的内核版本了]。终端:git branch -a看到以下信息:yan@ubuntu:~/kernel/goldfish$ git branch -a
remotes/origin/HEAD -& origin/master
remotes/origin/android-goldfish-2.6.29
remotes/origin/android-goldfish-3.4
remotes/origin/linux-goldfish-3.0-wip
remotes/origin/master选择2.6.29版本,然后输入以下信息下载:yan@ubuntu:~/kernel/goldfish$ git checkout remotes/origin/android-goldfish-2.6.29&&&&&&& 快下载完时,看到如下信息:Checking out files: 100% (), done.
Note: checking out 'remotes/origin/android-goldfish-2.6.29'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD is now at e3d684d... enable FUSE for sdcard emulation&&&&&&&& 这就表示内核下载完毕。文件夹goldfish除去上面的隐藏文件夹.git, 大小为360M,压缩文件下载链接: 下载后可以直接按下面步骤进行编译。为了编译内核,需要如下步骤:1,设置交叉编译器路径:&&&&&&&&&&&&& export PATH=$PATH:/media/娱乐/androidSource/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin2,修改goldfish目录下的Makefile文件的以下两行为:&& & &&& # ARCH ?= (SUBARCH)&&&&&& #&CROSS_COMPILE?= &&&&& 将其改为:&& & &ARCH ?= arm &#体系结构为arm&& & &CROSS_COMPILE & & ?= arm-eabi- && #这是交叉编译工具链前缀3,输入:make goldfish_armv7_defconfig,这里注意如果输入make goldfish_defconfig编译好的内核在启动时,将启动不了,一直黑屏。最初我弄的也是黑屏启动不了,参考后面参考2才找到答案。看到如下信息:yan@ubuntu:~/kernel/goldfish$ make goldfish_armv7_defconfig
scripts/basic/fixdep
scripts/basic/fixdep.c: In function ‘traps’:
scripts/basic/fixdep.c:377: warning: dereferencing type-punned pointer will break strict-aliasing rules
scripts/basic/fixdep.c:379: warning: dereferencing type-punned pointer will break strict-aliasing rules
scripts/basic/docproc
scripts/basic/hash
scripts/kconfig/conf.o
scripts/kconfig/conf.c: In function ‘conf_askvalue’:
scripts/kconfig/conf.c:105: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
scripts/kconfig/conf.c: In function ‘conf_choice’:
scripts/kconfig/conf.c:307: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
scripts/kconfig/kxgettext.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
SHIPPED scripts/kconfig/zconf.hash.c
scripts/kconfig/zconf.tab.o
scripts/kconfig/conf
arch/arm/configs/goldfish_defconfig:289:warning: override: FB_EARLYSUSPEND changes choice state
# configuration written to .config
#&&&&&&&&&& 输入make或make -j4就可以编译了,带参数-j4,表示cpu为双核,速度快了很多,大概不到3分钟内核就编译完了。编译完成时可以看到:GEN
include/linux/compile.h
include/linux/compile.h
init/version.o
init/built-in.o
.tmp_vmlinux1
.tmp_kallsyms1.S
.tmp_kallsyms1.o
.tmp_vmlinux2
.tmp_kallsyms2.S
.tmp_kallsyms2.o
System.map
.tmp_System.map
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
arch/arm/boot/compressed/head.o
arch/arm/boot/compressed/piggy.gz
arch/arm/boot/compressed/piggy.o
arch/arm/boot/compressed/misc.o
arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
生成的内核在/home/yan/kernel/goldfish/arch/arm/boot文件夹下。4,用这个编译好的内核和编译源码产生的3个镜像安装至模拟器。&&&&&&& 终端中输入:&&&&&&& yan@ubuntu:~/kernel/goldfish$ emulator -kernel /home/yan/kernel/goldfish/arch/arm/boot/zImage &注意这个&号是让程序在后台运行,如果这样输入,会显示以下警告:&emulator: WARNING: system partition size adjusted to match image file (163 MB & 66 MB)为此,启动命令更改为:& emulator -kernel /home/yan/kernel/goldfish/arch/arm/boot/zImage -partition-size 500 &&&&&&&& 如果后面带&,模拟器启动后终端会自动释放,然后还可以接着输入命令:adb shell,然后cd /proc,然后cat version查看机器所用的内核版本。如果后面不带&,启动模拟器的终端就不会释放,用户也无法在此终端输入后续命令。这时可以新开一个终端,输入上面同样的命令查看内核版本信息。&&&&&& 其实可以在emulator命令时带个-shell参数,相当于在启动模拟器的终端输入adb shell命令了。因此,我推荐的启动命令是:emulator -kernel /home/yan/kernel/goldfish/arch/arm/boot/zImage -partition-size 500 -shell&&&&&&& 如果用系统自带的默认内核,cat version查看的结果是:# cat versionLinux version 2.6.29-g327fbfb (digit@lulu.par.) (gcc version 4.4.3 (GCC) ) #10 Thu Oct 6 00:37:14 CEST 2011&&&&&&& 如果用刚编译好的内核,查看的结果是:# cat versionLinux version 2.6.29 (yan@ubuntu) (gcc version 4.4.3 (GCC) ) #2 Fri Jul 12 19:09:31 CST 2013虽然都是2.6.29内核,但从后面的日期和linux版本不难看出,新编译的内核成功加载至模拟器了。参考:1,老罗:2,欢迎android爱好者加群&&& &备注:yanzi----------------------------------------&本文系原创,转载请注明作者:yanzi1225627
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5174915次
积分:37242
积分:37242
排名:第111名
原创:378篇
转载:12篇
评论:2980条
阅读:4923
文章:23篇
阅读:564276
(4)(5)(1)(1)(1)(3)(1)(3)(5)(5)(5)(8)(4)(3)(3)(7)(10)(4)(2)(3)(1)(3)(7)(2)(1)(4)(1)(3)(17)(14)(7)(8)(7)(6)(3)(7)(7)(3)(3)(7)(5)(6)(11)(24)(6)(11)(10)(13)(11)(34)(39)(2)(23)(6)

我要回帖

更多关于 sd卡量产img镜像文件 的文章

 

随机推荐