Android移植教程
安卓Android ROM定制、移植:第六篇:boot.img、recovery解包和打包
太抱歉了,因为教程实在是有点粗浅了,其实很多东西都不知道怎么去写,这不是复制粘贴,当然很多只是一步步的走的,不过也许我自己觉得已经阐述的很清楚了,可是一旦别人看起来,还是感觉很深奥,没办法,本人就这点能力了,呵呵!大家都知道安卓的核心更换呢,那是在boot.img里面,那么如何在WINDOWS下去解开它呢,LINUX的自己略过。
首先百度BOOTIMG.EXE,然后你懂的,会出来一大堆,这得感谢制作bootimg.exe的作者,本来是为华为的机器做的分解工具,不过我们也可以拿来分解boot.img、recovery.img等,OK!先来谈谈这两个文件的基础,部分来自网络。
boot和recovery映像的文件结构boot和recovery映像并不是一个完整的文件系统,它们是一种android自定义的文件格式,该格式包括了2K的文件头,后面紧跟着是用gzip压缩过的内核,再后面是一个ramdisk内存盘,然后紧跟着第二阶段的载入器程序(这个载入器程序是可选的,在某些映像中或许没有这部分)。
此类文件的定义可以从源代码android-src/system/core/mkbootimg找到一个叫做bootimg.h的文件。
(译者的话,原文是一个叫做mkbootimg.h的文件,但从Android 2.1的代码来看,该文件名应该是改为bootimg.h了)。
/*** +-----------------+** | boot header | 1 page** +-----------------+** | kernel | n pages** +-----------------+** | ramdisk | m pages** +-----------------+** | second stage | o pages** +-----------------+** n = (kernel_size + page_size - 1) / page_size** m = (ramdisk_size + page_size - 1) / page_size** o = (second_size + page_size - 1) / page_size**** 0. all entities are page_size aligned in flash** 1. kernel and ramdisk are required (size != 0)** 2. second is optional (second_size == 0 -> no second)** 3. load each element (kernel, ramdisk, second) at** the specified physical address (kernel_addr, etc)** 4. prepare tags at tag_addr. kernel_args[] is** appended to the kernel commandline in the tags.** 5. r0 = 0, r1 = MACHINE_TYPE, r2 = tags_addr** 6. if second_size != 0: jump to second_addr** else: jump to kernel_addr*/ramdisk映像是一个最基础的小型文件系统,它包括了初始化系统所需要的全部核心文件,例如:初始化init进程以及init.rc(可以用于设置很多系统的参数)等文件。
安卓Android ROM定制、移植:第四篇:安卓ROM简单定制、打包、签
安卓Android ROM定制、移植:第四篇:安卓ROM简单定制、打包、签安卓Android ROM定制、移植:第四篇:安卓ROM简单定制、打包、签名、换字体首先下载一个ROM主要是ZIP格式的,下一篇给大家讲讲IMG格式的如何分。
一、下载一个ZIP格式的ROM解压,一个ROM的结构其实以CM7官方为例,很简单如下1. META-INF2. system 本帖隐藏的内容3. boot.img当然有的也包含有DATA文件夹,那么这些是干嘛的呢!META-INF\\com\\google\\android\%updater-script放的是刷机脚本,刷进机器就靠这些脚本,一般不用动就行。
system里面放的是系统文件夹1. system\\app system\\bin2. system\\etc3. system\\fontssystem\\framework4. system\\lib5. system\\media6. system\\tts7. system\%usr8. xbin9. build.prop那么来看一些具体的参数,打字真他花儿的蛋疼,哎!手打一部分,一部分来自网络!1. \\system\\app2. \\system\\app\\AlarmClock.apk 闹钟3. \\system\\app\\Browser.apk 浏览器4. \\system\\app\\Bugreport.apk Bug报告5. \\system\\app\\Calculator.apk 计算器6. \\system\\app\\Calendar.apk 日历7. \\system\\app\\CalendarProvider.apk 日历提供8. \\system\\app\\Camera.apk 照相机9. \\system\\app\\com.amazon.mp3.apk 亚马逊音乐10. \\system\\app\\Contacts.apk 联系人11. \\system\\app\\DownloadProvider.apk 下载提供12. \\system\\app\\DrmProvider.apk DRM数字版权提供13. \\system\\app\\Email.apk 电子邮件客户端14. \\system\\app\\FieldTest.apk 测试程序15. \\system\\app\\GDataFeedsProvider.apkGoogleData提供16. \\system\\app\\Gmail.apk Gmail电子邮件17. \\system\\app\\GmailProvider.apk Gmail提供。
安卓rom移植教程2篇
安卓rom移植教程2篇第一篇:安卓ROM移植教程ROM移植是一项技术难度较高的工作,它可以让我们将适用于一个设备的安卓系统移植到另一个设备上。
移植成功后,我们就能够在新设备上使用原本不适用的安卓系统,从而拥有更强大的功能和更好的体验。
下面,我将为大家介绍安卓ROM移植的基本步骤。
第一步:了解源ROM和目标设备在进行ROM移植之前,我们首先需要了解源ROM和目标设备的情况。
源ROM指的是我们希望移植的安卓系统,而目标设备则是我们要将源ROM移植到的设备。
我们需要获取源ROM的系统镜像文件和相关的驱动程序,同时需要了解目标设备的硬件配置和系统要求。
第二步:提取源ROM的系统镜像文件提取源ROM的系统镜像文件是进行ROM移植的关键一步。
我们可以使用一些工具,如Android Kitchen或者MTK Droid Tools等,来提取源ROM的boot.img、recovery.img以及system.img等文件。
这些文件包含了安卓系统的核心部分,我们需要将它们复制到电脑上进行后续的处理。
第三步:编译目标设备的内核编译目标设备的内核是进行ROM移植的另一个重要步骤。
我们需要根据目标设备的硬件配置和系统要求,选择合适的内核源代码,并进行相关的编译和配置工作。
这个过程可能会比较复杂,需要有一定的编程和操作系统的基础知识。
第四步:修改源ROM的配置文件在进行ROM移植之前,我们还需要对源ROM的配置文件进行修改。
这些配置文件包括了源ROM的设备树文件、启动脚本和其他一些相关文件。
我们需要根据目标设备的硬件配置和系统要求,对这些配置文件进行适当的修改和调整。
第五步:替换目标设备的驱动程序移植ROM的一个重要环节是替换目标设备的驱动程序。
我们需要将源ROM中的驱动程序替换为适用于目标设备的驱动程序,以确保ROM 能够在目标设备上正确运行。
这也是一个比较复杂的步骤,需要根据目标设备的硬件配置和系统要求,进行相应的驱动程序替换和调试工作。
安卓AndroidROM定制移植第八篇ROM单刷包的制作即刷机语法
安卓AndroidROM定制移植第八篇ROM单刷包的制作即刷机语法美化系统必学、安卓AndroidROM定制、移植定制rom也已经讲了一段时间了,不过不知道大家究竟有没有明白,今天给大家写一些单刷包的制作过程,一般来说都是用recovery刷机的,不过也有特殊的时候,这个暂且不论,开始!比如,接下来的篇章中,大多数是关于美化篇,那么就肯定需要这个东西,首先,看清楚单刷包的结构。
一般来说就是这两个东西META-INFSYSTEM如果你看了前面的几篇文章,那么这篇估计结构就懂了。
一般我没美化都是修改SytemUI.apk、framework-re.apk或者font 文件夹中的字体文件。
首先针对recovery3.0以下的同学使用的是update-cript语法,那么如下首先找一个你机型的刷机包,去掉其他只留这两个文件META-INF和ytem美化系统必学、安卓AndroidROM定制、移植update-cript用notepad++打开删掉所有的,并复制如下命令插入how_progre0.10deleteSYSTEM:app/SytemUI.apkdeleteSYSTEM:framework/framework-re.apkhow_progre0.13copy_dirPACKAGE:ytemSYSTEM:how_progre0.17et_perm000644SYSTEM:app/SytemUI.apket_perm000644SYSTEM:framework/framework-re.apkhow_progre0.110命令解释:deleteSYSTEM:app/SytemUI.apk删除ytem/app/SytemUI.apkcopy_dirPACKAGE:ytemSYSTEM:复制刷机包内的文件到相应的位置,其实呢,整个单刷包就这句就行,不过为了保险,还得加上这些语句!et_perm000644SYSTEM:app/SytemUI.apk为ytem.apk授权how_progre0.10等是进程提示符美化系统必学、安卓AndroidROM定制、移植修改后删除META-INF下的CERT.RSA、CERT.SF,然后压缩包,进行签名,用APKTOOL或者任何可用的签名工具都可以。
安卓系统移植经验之谈,教你三分钟移植
每当我闲下来时不发Rom时,就会整理一下思路,发发教程啥的,我觉得能带动机油们自己打造、改造Rom,共同提升,才是Romer的追求。
发Rom也好,教程也好,我的宗旨是不设回复可见,如果你觉得好,回复或者评分鼓励一下,我就很开心了。
不过这样做的一个遗憾就是,我的帖子通常回复率不够高,沉得快。
好了,闲话少说,上教程。
注:可能你会觉得文字教程比较干枯,不够形象生动,但是请精心看,我会尽量讲得具体、清晰。
首先,我并不算是移植高手,这个教程只是我在自己移植过程中的的一些收获体会,一些经验之谈。
如果你觉得有什么不对或值得改进的地方,欢迎和我交流,我们一起来完善这个教程。
因为移植所涉及的机型、配置相当多变和复杂,所以我无法讲具体细节,只能讲大致的原则。
可以结合我移植U8800+的JoyOS到U8860的例子作为参考进行理解。
我把这些原则抽象出来,命名为Rom移植5步法,具有一定的通用性。
Rom移植的方向有正向和逆向之分:正向的做法通常就是,找个目标机型的底包,然后把要移植的包的app和framework提取出来替换进去。
这样的优点是改动无需太大,非常快捷;缺点是经常因为一些bin下的程序或者库文件的差异而导致成功率不够高。
逆向的做法是,拿要移植的包作为底包,把目标机型的内核、wifi驱动、传感器库文件、配置文件等替换进去。
这样做要复杂一些,需要准确两个包的差异,知道应该改哪里;优点自然是不成则已,一旦移植成功能最大限度地发挥Rom性能,因为框架、程序与底层的契合度要比正向法好。
我这个教程以逆向法为例。
另外,Rom移植有风险,刷机测试需谨慎,如有本人操作不当导致出现任何问题,本人概不负责。
Rom移植5步法:1.Rom移植涉及的东西比较偏底层,所以在移植之前必须清楚目标机型的硬件配置,分区结构。
这里的配置不是说主频多少、内存多少,这两个参数基本上不会影响移植的进行。
对于移植,最关键的因素是主板平台,通常采用同一系列的cpu的不同机型的Rom移植的成功率要高很多。
任意安卓移植ROM教程,超详细ROM技术学习
任意安卓移植ROM教程,超详细ROM技术学习相信有过刷机经历的都知道安卓系统的构造,我们讲述一下安卓的几大组成:从内核基于linux开始,整个系统就运行在一个虚拟机上,这是安卓的一大特征!!那么我们移植的时候要修改哪一部分?这就是我们这个帖子的重点了。
在刷机时,我们大多使用zip格式的升级包进行刷机,那zip 格式的升级包是怎么样的一个组成呢?一个zip升级包的完整构造,其中我们要移植所需要修改的就是META-INF里的刷机脚本。
对于这个构造,有必要完整的解释一次。
META-INF这里面主要是签名文名和刷机时执行的脚本(updater-script),移植时,我们主要要更改的就是刷机的脚本。
system这里面就是android的系统部分app这里存放的是系统的app,每个app都有两个文件,一个*.apk,一个*.odex,我们在移植时,要将这个文件合并到对应的*.apk里面去,apk文件其实就是一个zip文件,可以用WinRAR或7zip打开的,当然,合并odex文件不是把它改名直接放到apk里去这么简单的,后面具体介绍一下。
还有,这个文件夹里面的程序,刷完以后是不能通过程序管理来卸载的。
bin这里面存放的是native程序,不好意思,一下子忘掉中文怎么说了。
简单来说,apk是JAVA 程序,而这个是C/C++的程序。
etc这里面存放的是系统默认的配置文件,GPS的配置也在这里J。
fonts这个是字体文件夹,一般很少改动,除非要做美化framework这里存放的是android框架,移植MIUI,很多改动在这个文件夹里,美化ROM的话,主要改framework-res.apk就可以了。
当然,MIUI本身就有主题机制了,不用这么麻烦去改。
这个文件夹里也会有对应的odex文件。
lib一些通过的类库,一般是由app/bin里面的程序调用的。
media媒体文件,要添加系统默认的铃声就在这里了。
如果是别的ROM的话,壁纸也会放在这里面。
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的朋友有所帮助,同时欢迎高手指正。
安卓rom简单移植
以前移植过华为C8812的,觉得移植内容差不多,所以决定试试,毕竟N881E也有一批用户,下面列出我的一些办法,看看对中兴机子是否可行我以前移植华为的办法如下移植百度的应用层和framework 框架层(system/app system/framework system/tts这三个文件夹我用的是百度云N880E的底包)移植lib,不删减添加东西,但是其中的modules使用官方包的,用BeyondCompare 3比较多出来的用百度云的包移植system/bin 和system/xbin 文件夹全部用官方的移植system/media 文件夹整个文件夹必须使用百度的移植system/usr 文件夹把百度的keychars 和keylayout 两个文件删除,替换为官方包中的这两个文件夹移植system/etc 文件夹必须将百度云的文件夹中firmware 文件夹删除,替换为官方包中的firmware文件夹修改build.prop必须使用官方包中官方的build.prop,但是必须在build.prop 任意位置加入如下几行(对比了N880E百度和N881E官方的build.prop,发现百度修改和添加了一下prop,移植时如果官方的build.prop有这个属性,替换,没有则增加即可):ro.baidu.build.hardware=N881Ero.baidu.build.hardware.version=1.0ro.baidu.build.software=yi_3.0ro.baidu.build.version.release=2.1ro.product.manufacturer=Baidupersist.sys.emmc=/mnt/sdcard2ro.config.notification_sound=Ding.mp3ro.config.ringtone=Echo.mp3ro.config.alarm_alert=alarm.mp3删除以下几个属性ro.operator.optr=ro.operator.spec=ro.operator.seg=移植boot.imgboot.img 启动镜像必须使用自己手机的。
安卓移植教程
Android系统开发编译环境配置主机系统:Ubuntu9.04(1)安装如下软件包sudo apt-get install git-coresudo apt-get install gnupgsudo apt-get install sun-java5-jdksudo apt-get install flexsudo apt-get install bisonsudo apt-get install gperfsudo apt-get install libsdl-devsudo apt-get install libesd0-devsudo apt-get install build-essentialsudo apt-get install zipsudo apt-get install curlsudo apt-get install libncurses5-devsudo apt-get install zlib1g-devandroid编译对java的需求只支持jdk5.0低版本,jdk5.0 update 12版本和java 6不支持。
(2)下载repo工具curl /repo >/bin/repochmod a+x /bin/repo(3)创建源代码下载目录:mkdir /work/android-froyo-r2(4)用repo工具初始化一个版本(以android2.2r2为例)cd /work/android-froyo-r2repo init -u git:///platform/manifest.git -b froyo初始化过程中会显示相关的版本的TAG信息,同时会提示你输入用户名和邮箱地址,以上面的方式初始化的是android2.2 froyo的最新版本,android2.2本身也会有很多个版本,这可以从TAG信息中看出来,当前froyo的所有版本如下:* [new tag] android-2.2.1_r1 -> android-2.2.1_r1* [new tag] android-2.2_r1 -> android-2.2_r1* [new tag] android-2.2_r1.1 -> android-2.2_r1.1* [new tag] android-2.2_r1.2 -> android-2.2_r1.2* [new tag] android-2.2_r1.3 -> android-2.2_r1.3* [new tag] android-cts-2.2_r1 -> android-cts-2.2_r1* [new tag] android-cts-2.2_r2 -> android-cts-2.2_r2* [new tag] android-cts-2.2_r3 -> android-cts-2.2_r3这样每次下载的都是最新的版本,当然我们也可以根据TAG信息下载某一特定的版本如下:repo init -u git:///platform/manifest.git -b android-cts-2.2_r3(5)下载代码repo syncfroyo版本的代码大小超过2G,漫长的下载过程。
常规ROM移植的基本思路和方法,教你快速学会安卓系统移植
常规ROM移植的基本思路和⽅法,教你快速学会安卓系统移植很多⼈都不知道怎么移植ROM,其实说简单也简单,说难也难,对于安卓ROM移植,其实在很早的时候,就有很多ROM开发者尝试,只不过⼤多⽆功⽽返,因为ROM移植后的BUG太难修复,但是,移植起码还是有机会开机,并且做出第⼀个体验版的,毕竟,修复BUG是后⾯的事情,参考下⾯的ROM移植教程。
1.准备beyond compare和notepad++ ,ROM开发定制必备的⼯具,也准备好官⽅包和移植包第⼀步,先删除,除META-INF,System,boot.img,data以外的⽂件,因为那些⽂件是多余的,可以不⽤到,只要⽤到ROM移植的基本⽂件就可以,然后⽤beyond compare对⽐脚本⽂件,我们来修改刷机脚本。
尤其是要注意删除前⾯两段机型验证,还有recovery恢复相关的脚本,避免刷机不通过,如下删除package_extract_dir("recovery", "/system");set_perm(0, 0, 0544, "/system/etc/install-recovery.sh");以及另外⼀个机型的验证,⽹速不好,具体这⾥没有截图上传,详细的教程,参考,⾥⾯有很多关于ROM移植的详细教程2.其次,刷机脚本要删除关于boot.img之外的img⽂件代码,不⽤刷⼊那么多分区,⼀般只要保留system和boot分区就⾏。
,3.现在修改system⾥⾯的⽂件,这⼀步对ROM移植很关键,⼤部分的东西都在这⾥,但是⽐较简单,将替换⽂件均为官⽅包替换到移植包如下替换:system/bin/vold (分区⽂件)System/etc/firmware (基带⽂件)System/etc/permissions (替换过去)System/etc/vold.fstab (这个是SD卡挂载)System/lib/hwSystem/lib/modulesSystem/lib/libaudio.primary.default (⾳频⽂件)System/usr/keylayout (按键⽂件)System/vendor/lib (替换过去)4.对⽐修改build.prop⽂件,把机型model改为你⾃⼰的机型还有其他的⾃⼰对⽐修改,先不改这么多,尝试能不能开机再说。
安卓Android ROM定制、移植教程。
CyanogenMOD移植教程转自秋叶随风Ivan;乐蛙论坛等。
第一章:环境的搭建一.系统选择和安装建议使用ubuntu LTS 10.04 X64新手朋友推荐Deepin Linux 基于ubuntu定制的,适合新手使用/download系统安装教程,以下方法通用于UBUNTU官方版本U盘安装:/index.php/Unetbootin光盘安装:/index.php/光盘安装搭建android编译环境:英文好的请猛击这里:WIKI:/index.php?title=Building_from_source1.安装JDK因为ANDROID大部分东西是java写的,所以首先我们需要安装JDK 打开终端按照如下命令输入或者直接复制粘贴:编译android 2.3 或者更新的版本请使用jdk 6$ sudo add-apt-repository "deb / lucid partner"$ sudo apt-get update$ sudo apt-get install sun-java6-jdk如果你需要编译的是2.2以下的版本请使用JDK 5,因为现在大家都是使用Gingerbread 以上的系统,这里就不介绍jdk5如何安装的了,如果有需要请度娘或者google2.安装各种依赖包64位环境:依然是终端中输入$ sudo apt-get install git-core gnupg flex bison gperfbuild-essential \zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \libgl1-mesa-dev g++-multilib mingw32 tofrodospython-markdown \libxml2-utils xsltproc如果这些依赖包依然不能解决你的问题,请参考如下:/wiki/HTC_Hero_(CDMA):_Com pile_CyanogenMod_(Linux)/source/initializing.html3.下载代码打开终端:在个人目录下面使用的是android 代替我的工程,用cm7代替CM7的源码用CM9代替CM9的源码如果要更新下载CM7的源码请输入:mkdir -p ~/binmkdir -p ~/android/cm7个人目录下的bin目录是为了保存repo 等更新脚本的依然再终端输入:curlhttps:///dl/googlesource/git-repo/repo > ~/bin/repochmod a+x ~/bin/repo可以把~/bin/repo 加入到环境变量里面终端输入sudo gedit /etc/environment在PATH=“”加入PA TH="/home/ivanhuang/bin:" ivanhuang为个人目录的名称,也就是计算机登录名更改结束之后终端输入source /etc/environment就能直接在终端中使用repo 命令了。
安卓带屏单兵系统移植
安卓带屏单兵Android 2.3.4 文件系统的移植一.安装相关库和下载Android源码1.Ubuntu 10.04 LTS 下安装相关库$ sudo add-apt-repository "deb /ubuntu lucid partner"$ sudo add-apt-repository "deb-src /ubuntu lucid partner"//国外的源下载比较慢,建议用163的源$ sudo add-apt-repository “deb /ubuntu/hardy multiverse”//此源用来下载java6$ sudo apt-get update$ sudo apt-get install git-core gnupg flex bison$ sudo apt-get install gperf libsdl-dev libesd0-dev libwxgtk2.6-dev$ sudo apt-get install build-essential zip curl libncurses5-dev zlib1g-dev$ sudo apt-get install minicom tftpd uboot-mkimage expect$ sudo apt-get install sun-java6-jdk$ update-java-alternatives -l //查看目前已经安装在系统里的Java版本$ sudo update-java-alternatives -s java-6-sun //设置默认java版本若是高版本的ubuntu,注意android编译需要gcc 4.4$ sudo apt-get install gcc-4.4$ sudo apt-get install g++-4.4$ sudo rm -rf /usr/bin/gcc /usr/bin/g++$ sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc$ sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++$ sudo apt-get install g++-4.4-multilib2.下载repo工具$ mkdir ~/bin$ export PATH=$PATH:~/bin$ curl /repo >~/bin/repo$ chmod a+x ~/bin/repo3.下载Android源码$ mkdir ~/rowboat-android$ cd ~/rowboat-android$ repo init -u git:///rowboat/manifest.git -m rowboat-gingerbread-dsp.xml$ repo sync或者可以用下载好的打包文件系统rowboat_android.tar.bz$ tar zxvf rowboat_android.tar.bz$ ./.repo/repo/repo sync --local-only二.系统的编译1.设置toolchain$ exportPATH=$PATH:~/rowboat-android/prebuild/linux-x86/toolchain/arm-eabi-4.4.3/bin2.编译x-loader$ cd ~/rowboat-android/x-loader$ make CROSS_COMPILE=arm-eabi- distclean$ make CROSS_COMPILE=arm-eabi- omap3evm_config$ make CROSS_COMPILE=arm-eabi-$ ./signGP ./x-load.bin$ mv x-load.bin.ift MLO//signGP 是x-loader的一个转换工具3.编译u-boot$ cd ~/rowboat-android/u-boot$ make CROSS_COMPILE=arm-eabi- distclean$ make CROSS_COMPILE=arm-eabi- omap3_evm_config$ make CROSS_COMPILE=arm-eabi-将~/rowboat-android/u-boot/tools/ 中生成的mkimage 复制到/usr/bin/ 中,此工具为了给后面的uImage打包使用。
Android操作系统移植经验大分享(上)
部分Ln x iu 内核或是设备驱 动的原始代码有 较大幅度 变动 ,包 含 以新 文件名 取代 旧文件 、
g uai66p —nxg u rz 。若 是 编 译过 程 中 n eb. 8 -c i —n . . 2 i lu mb
资 料 结 构 改 变 等 ,这 部 分 可 能 要 比 较 多 个 文 件 发生 错 误 ,建 议 针 对错 误 消 息 进 行 相 关修 改 ,如 I iu 内核 的  ̄ 才 能决 定要如何 修改 ,我 们建议使用 ca s tg ,静 果 不知 道 如何 修 改 或是 该 错误 不 影 rLnx
.
件 。 这 部 分 可 能 需 要 参 考 部 分 相 关 原 始 代 码 才 能 决 定 要 如 何 移 植 ,列举 如 下 。
ma ep a 7 l ec n g 直 接 指 定 k x 2 0 od d fo f : i
i d fo f 档 ,这 里假设p a 7 o d d fo f 是 ecn g i x2 0 l ec n g
一
参考其 他同样使 用P 2 0 XA 7 的平 台,比较新
旧版 本 的差 异 ,我 们 是 参 考 Mantn 等 平 台 的 is e o 相关程序代码。
旧版 的d fo f ,将 该 文 件 复 制 至l u ...5 ec n g i i x262 一 n
a d od 1 1 r /rd o f s 。 n ri一 . r/ c a re n g / 0 ah r i 下
程序代码 。
c r.on s p / t/n / o tl a k g 3 9 / u l /n ・ eyc r/g p lea n p r / c a e 3 7p b i a n i ap c n n —iu - n e b/ r -0 8 3 4 ・r -o e l u ・ o e-n x g u a i m・ 0 q - 1 am- n - n x- l - a 2 - ・ n - i
Android_ROM制作移植及精简教程lite
Android ROM制作制作,,精简及移植教程正向移植教程移植好说,BUG难解决啊!!!一、Android系统文件夹结构一个完整的ROM根目录会有以下几个文件夹及文件:Data文件夹,有些文件存在system\vendor\operator\app中META-IN文件夹system文件夹boot.img文件系统目录说明1.应用程序安装目录1)系统应用程序所在目录/system/app/*.apk2)用户安装应用程序所在目录/data/app/*.apk或者system\vendor\operator\app/*.apk中3)注意:a)在安卓4.0+模拟器中,每重启一次,/system/app/下的应用都会被还原,有时/data/app下也会被清除b)若在/system/app和/data/app下有重名的应用,不一定会启动哪一个,尤其是在adb install杀死正在运行的程序时,有时旧的就会被启动2.用户数据所在目录/data/data/应用包名/shared_prefs配置文件/data/data/应用包名/databases/*库文件所在目录3.SD卡对应目录/sdcard/而我们需要处理的只是两个文件夹里面的内容:data/app或者system\vendor\operator\app该文本夹里的文件可以全删,也可以自由添加自已所需安装的应用软件,刷机安装后可以自由删除。
system/app在这个文件夹下的程序为系统默认的组件,可以看到都是以APK格式结尾的文件,但有些自制的ROM里面还有和APK文件名对应的odex文件。
我们主要是针对该文件夹里的文件进行精简,如果有odex文件的,删除APK文件名时同时也删除与其对应的odex文件。
虽然一般定制时只是对以上两个文件夹里的文件做相应的增减,但我们还是一起来了解system相应目录相应文件的用途吧。
(rom版本不同里面的APK也会不一样)\system\*app\system\app\AicBootFix.apk省电模式\system\app\APKInstaller.apk apk安装器\system\app\ApplicationGuide.apk应用向导\system\app\ApplicationsProvider.apk应用同步(不可删除)\system\app\AtciService.apk流媒体同步服务\system\app\AudioEffectService.apk音效(不可删除)\system\app\BackupAndRestore.apk备份还原(不可删除)\system\app\BackupRestoreConfirmation.apk备份还原(不可删除)\system\app\AlarmClock.apk闹钟\system\app\Browser.apk浏览器\system\app\Bugreport.apk Bug报告\system\app\Calendar.apk日历\system\app\CalendarImporter.apk日历服务\system\app\CalendarProvider.apk日历存储\system\app\Calculator.apk计算器\system\app\CertInstaller.apk证书安装器\system\app\CDS_INFO.apk也就是common data serive同步数据\system\app\Camera.apk或者Gallery2.apk照相机\system\app\CellConnService.apk电话\system\app\com.amazon.mp3.apk亚马逊音乐(我们好像没有)\system\app\Contacts.apk联系人\system\app\Adscription.apk联系人归属\system\app\AudioElectric.apk这个音频设置\system\app\ContactsProvider联系人服务\system\app\DownloadProvider.apk下载提供DownloadProviderUi下载提供UI\system\app\EngMode.apk工程模式\system\app\FactoryPattern.apk工厂模式\system\app\FactoryPatternHelper.apk工厂模式服务\system\app\GPSView.apk GPS\system\app\DrmProvider.apk DRM数字版权提供\system\app\Email.apk电子邮件客户端\system\app\FieldTest.apk测试程序IME输入法LatinIME输入法NetUserMgr升级服务OTA升级服务\system\app\GDataFeedsProvider.apk GoogleData提供\system\app\Gmail.apk Gmail电子邮件\system\app\GmailProvider.apk Gmail提供\system\app\GoogleApps.apk谷歌程序包\system\app\GoogleSearch.apk搜索工具EngineerMode工程模式EngineerModeSim Sim\system\app\gtalkservice.apk GTalk服务\system\app\HTMLViewer.apk HTML查看器KeyChain电话界面数字键\system\app\HtcTwitter.apk集成Twitter客户端PEEP \system\app\IM.apk即使通讯组件包含MSN、yahoo通\system\app\ImCredentialProvider.apk\system\app\ImProvider.apk\system\app\Launcher.apk启动加载器\system\app\HtcNaviPanel.apk导航软件\system\app\Maps.apk电子地图Mms短信\system\app\MediaProvider.apk多媒体播放提供\system\app\Mms.apk短信、彩信\system\app\Music.apk音乐播放器\system\app\MyFaves.apk T-Mobile MyFaves程序\system\app\NewsReader.apk新闻阅读器\system\app\PackageInstaller.apk apk安装程序\system\app\Phone.apk电话拨号器SnsContactsUI信息服务程序Stock存储\system\app\Settings.apk系统设置\system\app\SettingsProvider.apk设置提供\system\app\SetupWizard.apk设置向导\system\app\SoundRecorder.apk录音工具\system\app\Street.apk街景地图StressHelper网络选择\system\app\Sync.apk同步程序SystemUI系统UIWeatherWidget天气插件Xtime时间DataUsageLockScreenClient锁屏DefaultContainerService这个判断系统是否出错DeskClock桌面时钟DeviceRegister数据架构\system\app\Talk.apk语音程序\system\app\TelephonyProvider.apk电话提供\system\app\Updater.apk更新程序\system\app\VpnServices.apk VPN服务\system\app\Vending.apk制造商信息\system\app\VoiceDialer.apk语音拨号器\system\app\VoiceSearch.apk语音搜索\system\app\YouTube.apk Youtube视频Exchange2邮件服务FileManager管理器FMRadioGalaxy4动态背景吧LiveWallpapersMagicSmokeWallpapersHoloSpiralWallpaper光环螺旋动态壁纸总之壁纸啦LocationEM很明显归属地MTK—MTK相关数据NetworkLocation网络位置NoiseField气泡动态壁纸NoteBook记事本Omacp股票OP02Plugin与相机先关PackageInstaller安装程序PhaseBeam壁纸剩下的不续了,后边的AccountAndSyncSettings.apk【google帐号同步设置不需要同步功能可删除】AccountAndSyncSettings.odexActivityNetwork.apk【网络服务系统类程序不可以删除】Android_ucbrowser_8.1.1.111_12041917.apk【内置UC浏览器不需要可以删】Appchina_C0304.Apk【可以删除】ApplicationsProvider.apk【应用程序支持服务不可以删除】ApplicationsProvider.odexBluetooth.apk【蓝牙服务程序,不建议删除】Bluetooth.odexbonjourExplorer.apk【文件共享浏览器不可以删除】bonjourExplorer.odexBrowser.apk【系统浏览器,可以删除】Browser.odexCalculator.apk【计算器,不用可删除】Calculator.odexCalendarex.apk【日历程序,可删除】Calendarex.odexCameraOpen.apk【自带照相机程序,不可以删除】CameraOpen.odexCellConnService.apk【电话连接服务不可以删除】CellConnService.odexCertInstaller.apk【证书安装服务不可以删除】CertInstaller.odexCom.sina.weibo.apk【可以删除】Contacts.apk【联系人,不可删,删除的话联系人都没了】Contacts.odexContactsProvider.apk【通讯录/联系人数据存储服务,不可删除】ContactsProvider.odexDefaultContainerService.apk【默认通讯录服务,不可删除】DefaultContainerService.odexDeskClock.apk【闹钟,不可删除】DeskClock.odexDownloadProvider.apk【电子市场,不用可删除】DownloadProvider.odexDownloadProviderUi.apk【电子市场界面,不用电子市场可删除】DownloadProviderUi.odexDrmProvider.apk【受保护数据存储服务,不可删除】DrmProvider.odexEmail.apk【电子邮件程序,不用可删除】Email.odexEngineerMode.apk【工程模式,不可删】EngineerMode.odexEngineerModeSim.apk【sim卡工程模式,不可删】EngineerModeSim.odexFileManager.apk【文件管理器,习惯用RE的可删,普通用户建议保留】FileManager.odexFileSharingClient.apk【文件共享客户端,可能是上面的文件管理器的一部分,先不删等求证】FileSharingClient.odexFileSharingServer.apk【文件共享服务端,可能是上面的文件管理器的一部分,先不删等求证】FileSharingServer.odexFMRadio.apk【收音机,不可删】FMRadio.odexGallery3D.apk【图库,可删或替换】Gallery3D.odexGinwave applicationinstaller.apk【程序安装器不可删】Ginwave applicationinstaller.odexGinwaveEngineerMode.apk【工厂模式,不可删】GinwaveEngineerMode.odexGinwaveHelp.apk【帮助文件,可删】GinwaveHelp.odexGinwaveIME.apk【经纬输入法可删或替换】GinwaveIME.odexGW-flashlight.apk【手电筒可删或替换】GW-flashlight.odexGWBlackList.apk【黑名单可删或替换】GWBlackList.odexGWDoodle.apk【涂鸦可删或替换】GWDoodle.odexGWMemo2.apk【便签可删或替换】GWMemo2.odexGWNotepad2.apk【记事本可删或替换】GWNotepad2.odexGWWeather.apk【天气预报可删或替换】GWWeather.apkHTMLViewer.apk【浏览本地网页,可删除】HTMLViewer.odexiReader v1630szjw20110509.apk【爱读掌阅可删】kaixinaccountservise.apk【开心网可删】kaixinaccountservise.odexLatinIME.apk【android键盘输入法,不能删,删了就不能选择输入法】LatinIME.odexLauncher.apk【界面不可以删除】Launcher.odexLiveWallpapersPicker_gles20.apk【动态墙纸,可删】LiveWallpapersPicker_gles20.odexLiveWallpapers_gles20.apk【动态墙纸,可删】LiveWallpapers_gles20.odexMagicSmokeWallpapers_gles20.apk【魔幻烟雾墙纸,可删】MagicSmokeWallpapers_gles20.odexMediaProvider.apk【媒体数据存储服务不可以删除】MediaProvider.odexMediaTekLocationProvider.apk【媒体位置提供商,可删】Mms.apk【短信,不可删除】Mms.odexMobileLog.apk【3个日志,可删】ModemLog.apkModemLog.odexmoffice 4.52052cn00262.apk【WPS办公软件可删或替换】MTKAndroidSuiteDaemon.apk【mtk程序别删】MTKAndroidSuiteDaemon.odexMtkBt.apk【无线键盘,不可删】MtkBt.odexMtkLiveWallpapers.apk【动态墙纸程序,不用动态墙纸可删除】MtkLiveWallpapers.odexmtk videolivewallpaper.apk【动态壁纸可删】mtkvideolivewallpaper.odexmtkvideowidget.apk【桌面视频插件可删除】mtkvideowidget.odexMusic.apk【音乐播放器,可删除,删除后不可用系统自带的铃声编辑器等】Music.odexMXNavi.apk【导航软件不需要的可删或替换】Omacp.apk【一个配置信息文件,可删】Omacp.odexPackageInstaller.apk【程序安装器,不删】PackageInstaller.odexPhone.apk【电话程序,没人会删除吧】Phone.odexPhone Local.apk【显示来去电归属地,不删】Phone Local.odexPicoTts.apk【文字语言转换的语音合成引擎,设置-"语音输入与输出"中不需要可删】PicoTts.odexPinyinIME.apk【google拼音输入法,可删,建议用搜狗(词库强大)或者百度输入法(设计完善)笔画建议用国笔】PinyinIME.odexProtips.apk【机器人桌面提示向导,可删除】Protips.odexProvision.apk【开机引导程序,不可删】Provision.odexQuickSearchBox.apk【搜索,可删】QuickSearchBox.odexRegit.apk【未知程序,暂不删吧】RenRenAccountservice.apk【人人网,不用可删】RenRenAccountservice.odexRootExplorer.apk【RE管理器,不用RE的可删,建议留着】Settings.apk【设置,不可删】Settings.odexSettingsProvider.apk【设置提供商,不可删】SettingsProvider.odexSmsReg.apk【后台短信注册机卡绑定的认证联通合约机不可删非联通合约机可删】SmsReg.odexSNScommon.apk【SNS相关程序,不可删】SNScommon.odexsnscontentprovider.apk【SNS内容提供商,不可删】snscontentprovider.odexsnswidget.apk【SNS小工具,可以删】snswidget.odexsnswidget24.apk【SNS社区,可以删】snswidget24.odexsocialstream.apk【网络社区,可删】socialstream.odexSoundRecorder.apk【录音机,不用可以删,建议保留吧】SoundRecorder.odexStk1.apk【sim卡1的菜单,可删,删了就不会在开机时跳出欢迎使用联通移动的提示】Stk1.odexStk2.apk【sim卡2的菜单,可删,删了就不会在开机时跳出欢迎使用联通移动的提示】Stk2.odexStkSelection.apk【sim卡工具箱,可删】StkSelection.odexSuperuser.apk【超级权限,不可删】SystemUI.apk【状态栏界面,不可删】SystemUI.odexTelephonyProvider.apk【电话提供商,不可删】TelephonyProvider.odexTtsService.apk【谷歌语音服务插件,如来电报名,语音搜索等。
安卓系统移植之按键移植
LOCAL_Pinclude $(CLEAR_VARS)
file :
= $(TARGET_OUT_KEYLAYOUT)/gpio-keys.kl
ALL_PREBUILT += $(file)
这一部分主要是移植
(1)Android使用标准的linux输入事件设备(/dev/input目录下)和驱动,按键定义在内核include/linux/input.h文件中,
按键定义形式如下:
#define KEY_ESC1
#define KEY_12
#define KEY_23
(2)内核中(我的平台是arch/arm/mach-mmp/merlin.c文件)中按键的定义如下形式:
.desc="O_BTN button",
.type=EV_KEY,
/* .wakeup= */
.debounce_interval=10,/* 10 msec jitter elimination */
},
[2] = {
.code=KEY_F4,
.gpio=MFP_PIN_GPIO1,
.active_low=1,/* 0 for down 0, up 1; 1 for down 1, up 0 */
(2)android按键设备由Window Manager负责,Window Manager从按键驱动读取内核按键码,然后将内核按键码转换成android按键码,转换完成
后Window Manager会将内核按键码和android按键码一起发给应用程序来使用,这一点一定要注意。
Android系统开发小知识-在android产品开发中添加新的编译模块
安卓ROM移植教程(史上最精最全)
目录目录 (1)第三章制作第三方移植乐蛙ROM(高通篇) (3)一、选择合适的基础包 (3)1.1选择合适的第三方ROM包 (3)1.2选择合适的乐蛙OS刷机包 (3)二、移植之前的准备工作 (3)1.保证刷机脚本的通用性 (4)2.学习使用BeyondCompare (4)三、移植过程中所需要的操作 (4)1.移植乐蛙的应用层和framework框架层 (4)1.1应用层(system/app)移植 (5)1.2framework框架层(system/framework)移植 (7)2.移植lib层 (8)3.移植system/bin文件夹 (8)4.移植system/xbin文件夹 (9)5.移植system/media文件夹 (9)6.修改build.prop (9)四、移植完成后的工作 (9)1.压缩打包为zip刷机包 (9)2.使用Recovery输入ROM包进行测试 (10)3.测试过后出现Bug的反馈机制 (10)(高通篇)第三章制作第三方移植乐蛙ROMROM(高通篇)在本文中我们将会对市面上存在的高通、德州仪器、三星、tegra四种平台的机器的移植进行介绍,今天先给大家带来高通篇。
选择合适的基础包一、选择合适的基础包一、1.1选择合适的第三方ROM包市面上高通平台的手机众多,使用高通机器的手机也有着众多的ROM,这是我们需要选择一个合适的ROM作为基础包(这这里简称Base)。
首先,本篇中我们讲的是第三方ROM的移植,不包括官方ROM和官方ROM美化版,在第一章中我们也有所介绍,关于官方ROM的移植,我们后续文章中将会有所介绍。
在这里我们推荐选用CM的ROM作为base包,选取条件如下:1)首先要找到自己机型的CM的ROM;2)所选择的ROM要尽量功能完善;3)如果为自己机型开发的ROM并不多,则尽量选取使用同一厂商同一平台的其它机器的ROM,例如U8510就可以选用C8650的ROM。
安卓Android ROM定制、移植:第五篇:厨房的使用教程
首先按照前面的配备好厨房,OK!不解释!
粗略讲下厨房的安装:
比如我下载的是ioz9_Android_Tools_GoAPK_0.179.zip(现在已经有0.180你可以百度到汉化版)
解压后,文件夹里面的所有文件都放在C:\cygwin\home\Administrator这就是你安装CYGWIN环境的目录下了
OK,其实你下载厨房估计都有教程里面,怎么放!
看前面的把提取出来的BOOT.IMG SYSTEM.IMG放C:\cygwin\home\Administrator\original_update这个里面,注意那个厨房一定得安装正确。
OK!let me go!
双击打开安装的cygwin
出现如下界面,
输入./menu\,回车,出现-再回车,出现厨房主界面
选择1,导入ROM文件或文件夹,来到以下界面
回车,出现
输入1,他会自动加载并分解,如图:
额,继续,随便修不修改都无所谓。
等他解压完,回车回到主页面,这个工作文件夹就做好了,到这里可以查看ROM信息
继续,一般来说一个官方的ROM就如下了
输入2项添加ROOT,选择f,回车得到ROOT。
输入3,回车,再输入Y得到BUSYBOX(其实可以不要)
进入高级菜单,输入11合并ODEX
等上面慢慢合并完,再输入13添加data文件夹,OK
参照第四篇,简单的制作。
以上图选择默认1,会进行优化,看图,输入Y
等他优化完,自动打包
输入N
签名中
其中还有修改文件名等,自己看着办吧!
厨房还有很多功能,慢慢再讲了,大家可以自己去研究,原来写教程那是累得你无语的事情!。
Android 移植之 iperf
1 .移植准备1 ,源代码地址:/projects/iperf/files/iperf/2.0.4%20source/iperf-2.0.4.tar.gz/download ,下载iperf-2.0.4.tar.gz ,并放到Adroid_root/external ;2 ,解压到Adroid_root/external/ iperf-2.0.4.tar.gz;tar –zxvf iperf-2.0.4.tar.gz2.创建Android.mkcat Android.mkLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES := /compat/Thread.c /compat/error.c /compat/delay.cpp /compat/gettimeofday.c /compat/inet_ntop.c /compat/inet_pton.c /compat/signal.c /compat/snprintf.c /compat/string.cLOCAL_SRC_FILES += /src/Client.cpp /src/Extractor.c /src/Launch.cpp /src/List.cpp /src/Listener.cpp /src/Locale.c /src/PerfSocket.cpp /src/ReportCSV.c /src/ReportDefault.c /src/Reporter.c /src/Server.cpp /src/Settings.cpp /src/SocketAddr.c /src/main.cpp /src/sockets.c /src/stdio.c /src/tcp_window_size.c /src/gnu_getopt.c /src/gnu_getopt_long.c /src/service.cLOCAL_C_INCLUDES += /$(LOCAL_PATH) /$(LOCAL_PATH)/includeLOCAL_CFLAGS += -O2LOCAL_CFLAGS += -DHAVE_CONFIG_HLOCAL_LDLIBS += -lpthreadLOCAL_SHARED_LIBRARIES := libc libm libcutils libnetutils LOCAL_MODULE := iperf#LOCAL_FORCE_STATIC_EXECUTABLE := trueLOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)#LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED)#LOCAL_MODULE_TAGS := eng userinclude $(BUILD_EXECUTABLE)3.先生成需要的头文件./configure –host=arm4.代码修改将external/testtools/iperf/src/Listener.cpp:382 行改成:mreq.ipv6mr_ifindex = 0;把compact/signal.c 里面的#include "util.h"改成#include “../include/util.h”把src/sockets.c 里面的#include "util.h"改成#include “../include/util.h”5.编译$cd Adroid_root$source build/envsetup.sh$mmm external/iperf-2.0.46.目标文件在Android_root/build/out/target/product/generic/symbols/system/bin/ 目录下就可以看到你刚才编译生成的文件了;这个目录里的文件是带符号信息的,方便调试。
A33 Android快速移植指南
A33快速移植指南C o nf i d en t i al文档履历版本号日期制/修订人制/修订记录V1.02014-06-09初始版本C o n f i d en t i al目录A33 (1)1. 概述 (5)1.1. 名词解释 (5)2. 方案定制 (6)2.1. overlay 说明 (6)2.1.1. 为产品添加Overlay 目录 (6)2.1.2. 改变mk 文件来添加overlays 的编译项 (6)2.1.3. 在overlay 目录下创建资源文件 (7)2.2. 预装APK (7)2.2.1. 默认预装APK (7)2.2.2. 预装到system/app 目录 (7)2.2.3. 预装到system/preinstall 目录 (8)2.3. 配置data 分区 (8)2.4. 修改启动LOGO (8)2.5. 修改启动动画 (9)2.6. 修改充电图标 (9)2.7. 定制recovery 功能 (9)2.7.1. 键值的查看 (9)2.7.2. 按键选择 (10)2.7.3. 功能使用 (10)2.8. 内存自适应 (10)2.9. 配置dalvik vm 参数 (11)2.10. 配置单用户说明 (11)3. 模块配置 (14)3.1. 自定义按键配置 (14)3.1.1. KEY 的硬件原理 (14)3.1.2. 驱动与硬件对应的关系 (14)3.1.3. Android 按键功能的映射 (15)3.2. WiFi/BT 配置 (15)3.2.1. 使用AP6181/AP6210 (15)3.2.2. 使用rtl8188eu/rtl8723bs (18)3.2.3. 使用esp8089 (21)3.3. LCD Panel 配置 (23)3.3.1. 配置文件的修改 (23)3.3.2. 配置UI 方向属性 (24)3.4. Touch Panel 配置 (24)3.4.1. 配置文件的修改 (24)3.4.2. Android 层的配置修改 (25)3.4.3. touch panel 驱动使用说明 (26)3.5. G-Sensor 配置 (27)3.5.1. 打包配置文件修改 (28)3.5.2. Android 层配置修改 ..................................................................................................... 28 C o n f i d e n t i a l3.6. Camera 配置 ......................................................................................................................... 29 3.6.1. 打包配置文件修改 ....................................................................................................... 29 3.6.2. Android 层的配置修改 ................................................................................................. 31 3.6.3. Camera 参数配置 .......................................................................................................... 31 3.7. 震动马达配置 ....................................................................................................................... 34 3.7.1. 配置文件修改 ............................................................................................................... 34 3.7.2. Android 层配置修改 ..................................................................................................... 34 3.8. SD 卡配置 ............................................................................................................................. 34 3.9. CTP 与Sensor 自动检测使用说明 ...................................................................................... 36 3.9.1. GSENSOR 自适应使用说明 ........................................................................................ 36 3.9.2. Recovery 功能tp 的自适应使用说明 .......................................................................... 37 3.10. 安全控制配置 ....................................................................................................................... 394.Settings 设置 ......................................................................................................................................... 40 4.1. 默认LCD 关闭时间设置 ..................................................................................................... 40 4.2. 默认亮度设置 ....................................................................................................................... 40 4.3. 默认字体大小设置 ............................................................................................................... 40 4.4. 蓝牙选项设置 ....................................................................................................................... 40 4.5. Miracast 功能设置 ................................................................................................................ 40 4.6. 快速开关机功能设置 ........................................................................................................... 40 5.Launcher 及界面设置 ........................................................................................................................... 41 5.1. 电池电量百分比显示 ........................................................................................................... 41 5.2. 默认壁纸设置 ....................................................................................................................... 41 5.3. 添加壁纸 ............................................................................................................................... 41 5.4. Launcher 默认图标和快捷栏设置 ....................................................................................... 41 5.5. 下拉菜单QuickSetting 中的开关显示 ................................................................................ 42 6.系统调试 ............................................................................................................................................... 43 6.1. 生成debug 固件 ................................................................................................................... 43 6.2. 使用fastboot ......................................................................................................................... 43 6.2.1. 进入fastboot 模式 ........................................................................................................ 43 6.2.2. fastboot 常用命令 ......................................................................................................... 43 7.Declaration (44)C o n f i d e n t i a l1.概述A33 平台快速移植文档,本文基于A33 astar-y3方案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android移植教程
2012-1-28 17:50|发布者: 团支书|查看: 43240|评论: 35
摘要: 其实移植并不难,主要看你有没有耐心。
比如我拿MOTO XT701来举例这里以目前CM7系列2.3.7
版本系统爲基础,其他系统略有不同。
要移植,就要了解系统的结构和打包解包:打包很容易,只需要
制作成ZIP格式的压缩包就行 ...
其实移植并不难,主要看你有没有耐心。
比如我拿MOTO XT701来举例
这里以目前CM7系列2.3.7版本系统爲基础,其他系统略有不同。
要移植,就要了解系统的结构和打包解包:
打包很容易,只需要制作成ZIP格式的压缩包就行了,里面包含2个文件夹和1个boot.img文件,boo 是内核,没有内核的系统是不能运行的,另外两个文件夹一个是system,也就是Android系统所另一个是META-INF,这里一般存放是刷机脚本,我们移植一般需要改的就是system文件夹里的内解包就是解压缩。
首先说结构,system下有:
App文件夹(存放内置软件的地方,每个软件都有自己的名字标注着,很容易识别,在移植上除US 必须用咱们自己的版本以外,其他可以用同分辨率机型的APP直接替换)
Bin文件夹(本文件夹一般存放的是开机运行的脚本和一些系统必备代码,一般移植出了问题不能就是这里的问题,一般我们用702的或者720的ROM里的,注意除了NETD需要用701的外,其他也直接用702或者720ROM的,不过一般系统升级不会修改这里,在移植的时候,要删除2nd-init以有.sh脚本文件,这些对701是没有效果的,如果电池显示?,那么可以通过替换battd文件来修Etc文件夹(本文件夹里存放着这种配置文件,包括WIFI,蓝牙和基带{\etc\motorola\bp_nvm_def 配置文件,A-GPS的文件和Hosts文件也在这里,media_profiles.xml可以控制录像质量,cameraCalFileDef5M.bin与cameraCalFileDef8M.bin是照相的数据库文件,都可以修改,子文件init.d文件夹下可以写入自己的开机脚本,来实现一些程序或者脚本开机啓动,如果想要执行某可以添加一个文件,不要有后缀名,格式爲00aaa 00是执行序号,系统开机时会按顺序执行,a 爲了区别每个脚本的名称,可以随便写)
Font文件夹(字体文件夹,没什么好解释的,你可以替换爲你喜欢的字体)
Framework文件夹(系统框架结构文件目录,这个目录下是系统服务和系统界面的所在地,一般不单独替换,要移植的话必须全部替换,不然会卡M,framework-res.apk文件就是系统语言,界面的文件,修改他就可以直接修改系统界面,framework-res.apk必须与app文件夹中systemui.apk 不然开机会出现状态栏FC,不同版本不可以乱用,比如CM7.1.0.5不能用CM7.1.0.4的文件)
Lib文件夹(本文件夹是系统所需要用到的驱动,库文件的所在,如果某程序FC或者无法正常运转能是这里的问题,我把我知道的一些文件的用途说一下:
***Lib/dsp文件夹 DSP驱动所在,一般不需要改
***lib/egl 显示芯片驱动,一般不需要改
***libaudio.so 话筒及音频驱动必须用701的
***libaudioflinger.so 音频附属驱动必须用701的
***libbridge.so 相机方面
***libbattd.so 电池驱动
***libcamera.so 相机驱动必须用701的
***libcameraservice.so 相机服务驱动
***libfmradio.so FM驱动
***libHPImgApi.so 图片接口驱动必须用701的
***libLCML.so 未知驱动必须用701的
***liboemcamera.so 相机驱动必须用701的
***libOMX.TI.JPEG.Encoder.so 照片编码器必须用701的否则照片黑
***libOMX.TI.AAC.decode.so 此类型的都是编码器和解码器驱动(多媒体)
除上述红色文件必须用701外,其他文件可以直接用702或者720的。
Media文件夹(铃声及开机动画)
TTS文件夹(文字转语音文件夹)
Usr文件夹(键盘文件与各类数据库)
Xbin文件夹(系统工具文件夹)
Build.prop文件(系统参数文件,修改这里可以调节系统部分参数与性能)
如:默认虚拟机大小,铃声延迟,系统版本等
一般来说只要遵循规律,由少至多移植,不会出现什么问题,出现问题就从头开始,多积累经验,就会了。