转载ramdisk.img system.img userdata.img介绍及解包、打包方法

合集下载

转载ramdisk.imgsystem.imguserdata.img介绍与解包、打包方法

转载ramdisk.imgsystem.imguserdata.img介绍与解包、打包方法

ramdisk.img system.img userdata.img介绍及解包、打包方法2011-11-25 11:37:24分类:ramdisk.img system.img userdata.img介绍及解包、打包方法Android 源码编译后,在out/target/product/generic下生成的三个镜像文件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data。

ramdisk.img是根文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,android加载这3个映像文件后,会把system和userdata分别加载到ramdisk文件系统中的system和data目录下。

三个镜像文件及其三个目录树之间的生成关系是我们进行ROM制作的基础,下面将做详细介绍。

Ramdisk镜像是采用cpio打包,gzip压缩的。

用file验证:# file ramdisk.img输出: # ramdisk.img: gzip compressed data, from Unix为了便于说明问题,我们将ramdisk.img拷贝到其它一个目录,然后按以下步骤将ramdisk.img还原为目录树:# mv ramdisk.img ramdisk.img.gz# gunzip ramdisk.img.gz# mkdir ramdisk#cd ramdisk#mkdir temp#cd temp# cpio –i –F ../ramdisk.img这样,就得到一个完整的ramdisk目录,与out/target/product/generic/root对比后,我们发现它们是一样的内容。

通过执行以下的操作,我们可由目录树再生成ramdisk镜像# cd temp# find . | cpio -o -H newc | gzip > ../ramdisk-new.img 这两个镜像都属于yaffs2文件格式,生成方式是一样的。

内存盘放系统IMG,重起不掉数据设置教程

内存盘放系统IMG,重起不掉数据设置教程

内存盘放系统IMG,重起不掉数据设置教程
做的锐起无盘,服务器内存用到了8G,用2G做SC2超级缓存,再用4G做内存盘,还有2G
给系统用,也够了。

如果你的系统IMG是稀疏文件,那4G内存盘也足够放了
内存盘放锐起的客户机系统IMG文件,那效果自然不要我说,谁都知道4G的内存盘的速度,那可不是普通硬盘可以比的,就是现在最牛B的固态SSD硬盘也无法可比。

这些我不多说,下面主要详细写写图文教程:怎么安装和设置SuperSpeed RamDisk
安装基本是“下一步”没什么可说的。

到了下面这个图意思要注册信息。

下面我已经提供了文件和注册机下载。

所以我们选择YES,再运行keygen.exe注册,把注册信息复制到注册窗
这样就安装了,然后我们开设置:
我们可以到控制面板里找:看下图
也可以右键我的电脑,找到RamDisk,进入下面设置。

Ubuntu下Android源码修改、编译及运行、launcher定制

Ubuntu下Android源码修改、编译及运行、launcher定制

环境Linux 版本:Ubuntu 11.04 (可由10.10的版本进行升级)64位系统GCC版本:gcc version 4.5.2Java版本:java version "1.6.0_26"下载android源码前注意:1、保证Ubuntu系统中的容量在80G左右,以保证足够的空间来存放android源码以及编译后的相关文件。

2、保证Ubuntu系统进行Internet访问。

联网方法:采用拨号进行连接。

相关操作步骤如下所示:1、虚拟机→设置→硬件→网络适配器→网络连接→桥接2、启动Ubuntu系统,打开终端(在普通用户下),输入相关命令如下:$ pppoeconf //打开后输入上网账号跟密码,确认保存$ sudo pon dsl-provider //上网连接命令经过这两个步骤后就可以进行上网了。

Android源码编译所依赖的tools01.$ sudo apt-get update02.$ sudo apt-get -y install git-core03.$ sudo apt-get -y install gnupg04.$ sudo apt-get -y install sun-java6-jdk flex05.$ sudo apt-get -y install bison06.$ sudo apt-get -y install gperf07.$ sudo apt-get -y install libsdl-dev08.$ sudo apt-get -y install libesd0-dev09.$ sudo apt-get -y install libwxgtk2.6-dev10.$ sudo apt-get -y install build-essential11.$ sudo apt-get -y install zip12.$ sudo apt-get -y install curl13.$ sudo apt-get -y install libncurses5-dev14.$ sudo apt-get -y install zlib1g-dev15.$ sudo apt-get -y install valgrind注意:(如果是32bit的系统的话,则要更改几个Android.mk文件)01./external/clearsilver/cgi/Android.mk02./external/clearsilver/java-jni/Android.mk03./external/clearsilver/util/Android.mk04./external/clearsilver/cs/Android.mk用gedit打开,修改m64为m32即可另外将build/core/main.mk中的ifneq (64,$(findstring 64,$(build_arch)))修改为:ifneq (i686,$(findstring i686,$(build_arch)))对于32位系统所出现的问题,解决方法:Error1:make: ***[out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] error 1在terminal中输入$ gedit frameworks/base/libs/utils/Android.mk将LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)修改为:LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissiveError2:make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] error 1此处编译错误是由于ubuntu 11.10采用了GCC4.6.1导致的修改源码目录下/build/core/combo/HOST_linux-x86.mk并将以下语句:HOST_GLOBAL_CFLAGS+= -D_FORTIFY_SOURCE=0修改为:HOST_GLOBAL_CFLAGS+= -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0Android源码下载1、安装repo安装过程步骤如下所示:Repo下载安装1、$ mkdir ~/bin //在home目录下创建bin文件夹2、$ PATH=~/bin:$PA TH //环境变量设置3、$ curl https:///dl/googlesource/git-repo/repo > ~/bin/repo //repo下载4、$ chmod a+x ~/bin/repo //权限设置,保证repo可执行Repo client初始化1、$ mkdir Android //创建Android目录,用于存放下载的android源码2、$ cd Android //进入到Android目录3、$ repo init -u https:///platform/manifest //指定URL清单,指定包含在Android源代码的各种存储库将被安置在工作目录中当然也可以指定android版本,使用如下命令:$ repo init -u https:///platform/manifest -b android-4.0.1_r1Android源码文件获取$ repo sync注意:在Android源码下载过程中凡出现问题,可以进入Android源码下载的相关官方网站/source/downloading.html 进行查看。

android主要镜像(image)解析

android主要镜像(image)解析

android主要镜像(image)解析img解析:ramdisk.img:android根文件系统,在android编译系统生成的out/target/product/root目录中结构:./init.trout.rc./default.prop 保存一些调试参数,对于开发者相当重要./proc./dev./init.rc 一些启动参数./init./sys./init.goldfish.rc./sbin./sbin/adbd./system system.img挂载点./data userdata.img挂载点userdata.img 保存用户、应用信息。

结构:/data/app 所有安装后的app会移至此处,apk被拆成dex和apk,dex为目标文件,apk为资源包/data/data 应用程序内部存储信息,sharepreference、database,etcsystem.img 包含整个android系统结构:system/app android出厂内置应用在此,同时,在这里的app可以获得一些特别的权限。

system/framework android框架在此,不宜乱动,开发者可以使用adb push + 拔电池开关机可以快速验证问题。

(前提是eng 版本)Special App:SystemUI.apk 状态栏藏在里面。

framework-res.apk包含整个系统res文件夹 including 系统UI、一些配置参数、theme、style、animationrecovery.img 按power键+音量上键(android默认)可以进去,可以执行T卡升级,format,backup userdata,restore userdata 结构:不知道boot.img 包含一个linux kernel (maybe named as zImage)和一个ramdisk。

img文件结构在源码system/core/mkbootimg/bootimg.h中声明uboot.img android启动时第一个加载的镜像,初始化硬件和基本输入出系统。

Android详细移植过程

Android详细移植过程

apt-get 设置好后,按照下面的步骤安装相关组件Required Packages (Ubuntu 8.04)$ sudo apt-get install python2.5$ sudo apt-get install sun-java6-jdk sun-java6-bin sun-java6-jreAdd/Edit /etc/bash.bashrcexport JA V A_HOME=/usr/lib/jvm/java-6-sun-1.6.0.07$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev zlib1g-dev zip curl valgrind libncurses5-dev build-essential$ sudo apt-get install x-dev$ sudo apt-get install libx11-dev编译Android source code$ cd ~/mydroid$ export ANDROID_JAVA_HOME=$JAVA_HOME$ cd ~/mydroid$ make编译Android KernelBuilding zImageGo into kernel directory$ cd ~/mydroid/kernel$ make msm_defconfig ARCH=arm$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm- eabi-4.2.1/bin/arm-eabi-可以在 kernel/arch/arm/boot/目录下看到build好的zImage原文地址:/archiver/tid-2413.html由于论坛改版,很多有用的资源都不见了,所以这里把自己对cupcake下载和编译方法进行详细说明,以后还会陆续发完善的开发板移植说明、内核编译说明、一些模块级的分析等,希望对刚开始做android的朋友有所帮助,同时欢迎高手指正。

转:androidemulator命令详解

转:androidemulator命令详解

转:androidemulator命令详解在命令⾏输⼊: emulator -help,即可显⽰emulator⽀持的所有命令。

Android Emulator usage:emulator [options] [-qemu args]options:-sysdir <dir> 在⽬录<dir>中搜索system.img-system <file> 读取system.img⽂件<file>-datadir <dir> 写⼊⽤户数据到⽬录 <dir>-kernel <file> 使⽤指定内核kernel-qemu⽂件-ramdisk <file> 指定ram 镜像⽂件ramdisk.img-image <file> obsolete, use -system <file> instead-init-data <file> initial data image (default <system>/userdata.img-initdata <file> same as '-init-data <file>'-data <file> data image(default <datadir>/userdata-qemu.img-partition-size <size> 分区⼤⼩MBs-cache <file> cache.img-no-cache 禁⽌缓存-nocache 禁⽌缓存-sdcard <file> sdcard.img-wipe-data reset the use data image (copy it from initdata)-avd <name> 使⽤指定AVD设备-skindir <dir> search skins in <dir> (default <system>/skins)-skin <name> select a given skin-no-skin don't use any emulator skin-noskin same as -no-skin-memory <size> 物理内存⼤⼩MBs-netspeed <speed> 最⼤⽹速-netdelay <delay> ⽹络延迟-netfast disable network shaping-trace <name> enable code profiling (F9 to start)-show-kernel 显⽰内核消息-shell 终端启⽤root shell-no-jni disable JNI checks in the Dalvik runtime-nojni same as -no-jni-logcat <tags> 查看⽇志-no-audio disable audio support-noaudio same as -no-audio-audio <backend> use specific audio backend-audio-in <backend> use specific audio input backend-audio-out <backend> use specific audio output backend-raw-keys disable Unicode keyboard reverse-mapping-radio <device> ⽆线猫-port <port> 连接控制台的TCP端⼝.-ports <consoleport>,<adbport> TCP ports used for the console and adb bridge-onion <image> use overlay PNG image over screen-onion-alpha <%age> specify onion-skin translucency-onion-rotation 0|1|2|3 specify onion-skin rotation-scale <scale> 窗⼝缩放-dpi-device <dpi> specify device's resolution in dpi (default 1 65)-http-proxy <proxy> HTTP/HTTPS 代理-timezone <timezone> 时区-dns-server <servers> DNS服务器-cpu-delay <cpudelay> throttle CPU emulation-no-boot-anim disable animation for faster boot-no-window disable graphical window display-version 版本-report-console <socket> report console port to remote socket -gps <device> redirect NMEA GPS to character device-keyset <name> specify keyset file name-shell-serial <device> specific character device for root shell-old-system support old (pre 1.4) system images-tcpdump <file> 记录⽹络数据包-bootchart <timeout> enable bootcharting-prop <name>=<value> 设置系统属性-qemu args... pass arguments to qemu-qemu -h 显⽰qemu帮助-verbose same as '-debug-init'-debug <tags> enable/disable debug messages-debug-<tag> enable specific debug messages-debug-no-<tag> disable specific debug messages-help 帮助-help-<option> print option-specific help-help-disk-images about disk images-help-keys supported key bindings-help-debug-tags debug tags for -debug <tags>-help-char-devices character <device> specification-help-environment environment variables-help-keyset-file key bindings configuration file-help-virtual-device virtual device management-help-sdk-images about disk images when using the SDK -help-build-images about disk images when building Android -help-all 帮助(所有)-------------------------模拟器⾄少需要:kernel-qemuramdisk.imgsystem.imguserdata.img还可以包括:sdcard.imguserdata-qemu.imgcache.imgsystem-qemu.img。

Ubuntu12.04下在Android4.0.4源码下载及其编译过程

Ubuntu12.04下在Android4.0.4源码下载及其编译过程

Ubuntu12.04下在Android4.0.4源码下载及其编译过程一、下载源码1、下载工具repo:https:///tools/repo/在本地目录建个bin的文件夹,进入bin文件夹;通过git下载:1.git clone https:///tools/repo下载完成后,进入repo文件夹,切换到稳定分支:1.git checkout -b stable origin/stable将repo命令所在的目录,即/home/yourname/bin/repo添加到环境变量中:1.export PATH=$PATH:~/bin/repo在本地目录下新建目录:android4.0.4,并进入该文件夹:[html]view plaincopy1.cd ~;mkdir android4.0.4;cd android4.0.4;在文件夹下执行下面命令来下载Android源码:1.repo init -u https:///platform/manifest你也可以直接切换到你想要下的版本的分支,而不是“master”分支:1.repo init -u https:///platform/manifest -b android-4.0.4_r2关于到底是哪个分支,根据自己的情况而定,详情可参照:https:///platform/manifest/如你想下载最新的Android4.1代码,即可将分支名称更换成:android-4.1.1_r4你也可以参照官网的下载方式来下载:/source/downloading.html实验证明,我总是在下载那个repo工具的时候,无法连接到相应的地址。

下载是个漫长的过程,下载完成后的大小大概有14G,所以要提前准备好这么大的空间。

下载完成后的目录大概有这些:如图二、编译源码如果你的电脑的环境经常做开发,那么很多环境应该已经搭建好了,如果没有,可以参照官网:/source/initializing.html这里要提醒的是:用apt-get或者ubuntu软件中直接安装的jdk,jre的时候,编译Android是总是编译不过,出现JDK版本不一致的情况;解决办法如下:到oracle官网中下载jdk:/technetwork/java/javase/downloads/index-jsp-138363.html建议下载这个:jdk-6u35-linux-i586.bin下载完成后,运行得到一个jdk1.6.0_35文件夹,然后,将相应的JAVA环境加到系统环境中,简单的可以这样:1.vi ~/.bashrc在.bashrc文件最后添加:1.JAVA_HOME=/home/clw712/tools/jdk1.6.0_352.CLASSPATH=$JAVA_HOME/lib/3.ANDROID_PRODUCT_OUT=/home/clw712/bin/android/out/target/product/generic4.ANDROID=/home/clw712/bin/android5.ANDROID_SWT=/home/clw712/bin/android/out/host/linux-x86/framework6.PATH=$ANDROID/out/host/linux-x86/bin:$ANDROID/prebuilt/android-arm/kernel/:$JAVA_HOME/bin:$ANDROID_PRODUCT_OUT:$PATH7.8.export PATH JAVA_HOME CLASSPATH ANDROID_PRODUCT_OUT ANDROID_SWT当然上述路径还有后面编译好了,用到的路径,是用来运行emulator的。

高通Andriod开机流程与镜像说明

高通Andriod开机流程与镜像说明

⾼通Andriod开机流程与镜像说明Android镜像说明Android设备刷机时都需要ROM包,ROM包下⾯有很多的.img和其他的相关镜像⽂件,其中这⾥⾯包含了Android很多的分区,Android镜像⽂件是通过源码编译⽣成的,下⾯是ROM包各个镜像的作⽤:镜像⽂件说明boot.img boot分区,包括内核⽂件和虚拟内存盘Ramdisk,负责设备开机,可在recovery模式进⾏擦除,重新安装带有boot分区的新系统system.img system分区,包含Android系统的⽤户界⾯以及设置上的⼀些预装系统应⽤recovery.img recovery分区,替代启动分区,执⾏恢复和维护系统的⼀些操作userdata.img data分区,⽤于保存⽤户的数据,例如联系⼈,短信,设置偏好和应⽤程序存放的地⽅cache.img cache分区,⽤于放置系统频繁访问的数据和应⽤程序组件的分区persist.img persist分区包含了设备的传感器和信号部分的驱动程序,例如wifi,蓝⽛连接都有关系splash.img开机画⾯⽂件NON-HLOS.bin modem image负责处理通讯协议相关的基带镜像prog_emmc_firehose_8953_ddr.mbn QFIL软件烧录系统的时候,需要⽤到此⽂件,应该是关于EMMC、DDR的配置参数相关的sbl1.mbn硬件的初始化,并且保存加载其他模块信息的顺序tz.mbn trustzone是ARM TrustZone® 技术是系统范围的安全⽅法,基于安全需求和引导模式配置XPU,NAND MPU,它和其他模块代码运⾏在相互隔离的区域,主要实现底层很多安全性特性emmc_appsboot.mbn bootloader⽂件,进⼊fastboot模式相关⽂件rpm.mbn电源管理器,是⾼通MSM平台另外加的⼀块芯⽚,虽然与AP芯⽚打包在⼀起,但其是⼀个独⽴的ARM Core。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ramdisk.img system.img userdata.img介绍及解包、打包方法2011-11-25 11:37:24分类:ramdisk.img system.img userdata.img介绍及解包、打包方法Android 源码编译后,在out/target/product/generic下生成的三个镜像文件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data。

ramdisk.img是根文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,android加载这3个映像文件后,会把system和userdata分别加载到ramdisk文件系统中的system和data目录下。

三个镜像文件及其三个目录树之间的生成关系是我们进行ROM制作的基础,下面将做详细介绍。

Ramdisk镜像是采用cpio打包,gzip压缩的。

用file验证:# file ramdisk.img输出: # ramdisk.img: gzip compressed data, from Unix为了便于说明问题,我们将ramdisk.img拷贝到其它一个目录,然后按以下步骤将ramdisk.img还原为目录树:# mv ramdisk.img ramdisk.img.gz# gunzip ramdisk.img.gz# mkdir ramdisk#cd ramdisk#mkdir temp#cd temp# cpio –i –F ../ramdisk.img这样,就得到一个完整的ramdisk目录,与out/target/product/generic/root对比后,我们发现它们是一样的内容。

通过执行以下的操作,我们可由目录树再生成ramdisk镜像# cd temp# find . | cpio -o -H newc | gzip > ../ramdisk-new.img 这两个镜像都属于yaffs2文件格式,生成方式是一样的。

我们就以system.img为例来说明。

System.img >> system目录树所需工具unyaffs, 下载地址/p/unyaffs/downloads/list# mkdir system# cd system# unyaffs ../system.imgsystem目录树>> system.img所需工具mkyaffs2image,Android源码编译后会生成该工具,在out/host/linux-x86/bin 目录下。

命令格式:# mkyaffs2image system/ system_new.img了解以上方法的意义在于,我们可以对镜像文件镜像修改,定制,以符合自己的需求。

网上有很多制作Android ROM的教程,这里罗列一些链接:北理工的陈罡写的两篇文章,是我目前发现的最好的教程,写的非常详细/u/26691/showart_2193396.html/u/26691/showart_2194274.html这两篇文章参考了国外论坛的几个经典教程:/showthread.php?t=566235/wiki/inde ... Re-Pack_Boot_Images国内还有一篇文章写的也不错,这篇文章更侧重于制作类似Patch的ROM包/html/201002/1267213800ID1030.html这里基于自己的理解和测试,总结了一些方法步骤。

Android 的ROM包通常称为update.zip包,你可以到上下载现成的.zip 包。

要学习ROM包的制作,我们可以从这样一个zip包开始。

解开zip包后,通常有这样一些内容:1、boot.img 文件这是编译内核源代码生成的内核映像,然后与android源码编译出来的ramdisk.img一起通过mkbootimg工具创建出来的,图省事的朋友也可以从网上其他的刷机包里面拷贝一个能用的出来即可,基本上都差不多。

2、 META-INF目录这个目录是手工创建的,主要用来存放一个升级脚本update-script(这个脚本的内容与system目录中包含的文件有很大关联)以及签名。

3、system 目录这个目录就是编译android的平台源代码生成的要创建自己的ROM,我们通常会涉及到以下的一些工作:1.编译内核生成内核映像。

但一般情况下,我们没有必要自己去编,直接从刷机包里面取出一个就可以。

譬如,你要做一个2.2版本的升级包。

可以到网上找一个与自己机型相匹配的刷机包,从里面取出相应的kernel.img。

2.ramdisk.img的修改。

ramdisk.img 是根文件系统,Ugg boots,里面包含了启动配置脚本。

3.update-script的修改。

4.System的修改。

详细的步骤可以参考/u/26691/showart_2194274.html。

我们先做个简单的测试工作,来为后面更复杂的工作做好铺垫。

测试内容为:先对zip进行解包,然后分别在ramdisk和system的根目录下添加一个小文件,接着,生成新的ROM,并验证ROM是否可用。

这里要指出的是,这篇文章以及网上许多类似网站提到的方法都是针对HTC G1或Nexus one的。

而我在测试的时候,用的是HTC G3 Hero。

以上的方法导致的一个后果是,重新打包后再烧录,机器无法正常启动,adb shell也无法登陆。

后来在国外的一篇博客上看到了对此问题的说明,问题的根源很简单,从G3开始,打包的时候需要指定―--base‖参数。

对于Hero,参数为‖--base 0x19200000‖,但对于其它型号的机器,‖--base"要设定为多少,需要参考内核代码的实现。

解包打包可用两个脚本完成unpack-bootimg.pl, repack-bootimg.pl。

其中打包脚本用到的mkbootimg工具,在out/host/linux-x86/bin目录下。

unpack-bootimg.pl可直接将boot.img生成内核镜像boot.img-kernel和ramdisk目录树boot.img- ramdisk。

repack-bootimg.pl可将boot.img-kernel和boot.img-ramdisk重新生成boot.img。

在解包后,我们在ramdisk和system目录下,各添加一个测试小文件(譬如叫mytest)。

做完这些开始组包,重新生成update.zip。

到这里我们的工作并没有完全结束,还有最后的一步——签名。

签名需要用到签名工具testsign.jar,这是一个基于java 1.6版本的工具。

在编译Android源码的时候,我们强调要用java 1.5。

在这里,我们必须切换到1.6版本。

1)重新生成boot.img将前面解包得到的boot.img-ramdisk 和编译源码后out/target/product/generic/下的root目录树放在一个目录下,然后用repack-bootimg.pl重新生成boot.img2) 创建一个目录myupdate,将上面生成的boot.img放到这个目录下3)将编译Android后,out/target/product/generic/生成的system目录树拷贝到myupdate目录4)在myupdate目录下创建update-script脚本目录# mkdir -p META-INF/com/google/android5)删除system/bin目录下的―符号链接‖,创建update-script脚本研究原有的update-script脚本,我们可以大致看出update-script负责文件删除拷贝,权限设置,符号链接创建等工作。

我们可以在原有update-script的基础上进行修改以得到我们自己的update-script。

这里,我们要注意的是,要保证update-script 的link创建成功,必须把/system/bin下的link删除。

我们可以用一个脚本来做这个工作delsymlink。

我修改后与自己编译的Android2.2 system目录树相匹配的脚本。

6)重新打包并签名7)自制ROM下载时报错在试验过程中,我经常遇到如下的报错Can't open/sdcard/download/update.hiapk问题原因:当update-script 中有命令操作错误,脚本就会停止,并报这个错误,解决的办法就是修正脚本。

你可以从这个错误前面的提示,知道脚本哪一行出错了。

很多时候,你并不需要创建一个完整的ROM包。

你需要的只是,添加删除或修改一些功能(譬如你仅想添加一个应用,或者你想添加busybox工具)。

我们可以参考这里,来实现这个目的。

3.创建一个Patch功能的ROM很多时候,你并不需要创建一个完整的ROM包。

你需要的只是,添加删除或修改一些功能(譬如你仅想添加一个应用,或者你想添加busybox工具)。

我们可以参考这里,来实现这个目的。

我用一个简单的例子来说明这个过程。

该例子是在system目录下添加一个mytest文件,同时创建一个指向这个文件的符合链接mylink。

以下是过程:1)创建patch_update目录,并在该目录下执行# mkdir system# mkdir –p META-INF/com/google/android2)在system目录下生成mytest文件3)在META-INF/com/google/android 创建如下的update-scriptshow_progress 0.1 0copy_dir PACKAGE:system SYSTEM:symlink mytest SYSTEM:mylinkset_perm 0 0 0755 SYSTEM:mytest4) 打包签名如果前面的3步曲,你已经很好的掌握了,应付你的日常工作应该没有太大的问题。

但要成为真正的ROM高手,你还有很多东西要修炼。

你要了解整个启动过程,内核编译,Android源码的编译及配置,文件系统及启动配置。

烧录Android 机器HTC的官网上有一篇文章这里详细介绍了镜像包及烧机方法。

通常用两种烧录方式:recovery模式,fastboot模式。

通过一些组合键,可以进入烧录模式。

以HTC G3 Hero为例,―Home + Power‖同时按,可以进入Recovery模式,―Back + Power‖可以进入fastboot 模式。

Recovery模式比较常用,它相当菜单界面的下载模式。

相关文档
最新文档