Android 文件系统制作教程

合集下载

安卓Android ROM定制、移植:第六篇:boot.img、recovery解包和打包

安卓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开发教程入门(软件安装流程)

Android开发教程入门(软件安装流程)

Android开发教程第一部分:安装SDK这里介绍如何安装Android的SDK开发包和配置开发环境。

如果你还没有下载SDK,点击下面的链接开始。

Download the Android SDK系统和软件配置要求要通过Android SDK中提供的代码和工具进行Android应用程序的开发,需要一个合适的用于开发的电脑和合适的开发环境,具体要求如下:支持的开发环境EclipseEclipse 3.2,3.3(Europa)Android开发工具插件(可选)其他的开发环境或者IDEJDK5.0或者JDK6.0(仅有JRE是不够的)安装SDK下载好SDK包后,将zip文件解压缩至合适的地方。

在下文中,我们默认你的SDK安装目录为$SDK_ROOT 你可以选择将$SDK_ROOT/tool s加入到你的路径中1.Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/tools的完整路径加入其中。

如果没有找到设定PATH变量的行,你可以自己添加一行:export PATH=${PATH}:<你的$SDK_ROOT/tools的完全路径>2.Mac下,在你的home目录中找到文件.bash_profile,和Linux的一样处理。

如果还没有在机器上设定这个文件,你可以创建一个.ba sh_profile文件。

3.Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。

通过将$SDK/tools加入系统路径,在运行adb和其它一些命令行工具时就不需要键入完全路径名了。

需要注意到是,当你升级了SDK后,如果安装路径有变动的话,不要忘记了更新你的PATH变量的设置,将其指向变动后的路径。

安装Eclipse插件(ADT)如果你选择Eclipse作为Android的开发环境,可以安装一个专门为Android定制的插件:Android Development Tools(ADT),ADT插件集成了对Android工程和工具的支持,它包含了大量功能强大的扩展,使得创建、运行、调试Android程序更简单更快捷。

android源码编译及rom制作

android源码编译及rom制作
内部测试版本:Ubuntu10.04 Gingerbread (2.3.x) or newer:64 bit系统 工具:Python 2.5-2.7
GNU make 3.81-3.82 JDK 6(生成 Gingerbread 或更高版本) JDK 5(Froyo 或旧版本) Git 1.7 或更高版本 gcc/g++ 4.4 (其他版本编译出错)

设置Linux编译环境
安装JDK: Java6:
$ sudo add-apt-repository "deb / lucid partner" $ sudo apt-get update $ sudo apt-get install sun-java6-jdk
一整套编译 100GB 选择编译分支
建议:不要使用虚拟机安装ubuntu编译 1、编译花费时间长,需要内存大 2、如果配置低,可能会卡住不动 3、虚拟机连接手机有问题,很可能不识别,编译前需要从手机拉 配置数据;不能使用fastboot模式刷机

设置Linux编译环境
|-- prebuilt
(x86和arm架构下预编译的一些资源)
|-- sdk
(sdk及模拟器)
|-- system
(文件系统库、应用及组件——C语言)
|-- vendor
(厂商定制代码)

Android源码编译
初始化编译环境 下载代码树 编译 编译内核
sudo chmod a+rx /etc/udev/rules.d/51-android.rules sudo /etc/init.d/udev restart
3.重启adb服务(必须为sudo 已配置android环境变量)

android createfile的权限流程

android createfile的权限流程

android createfile的权限流程在Android系统中,创建文件并为其设置权限是一个涉及多个步骤和考虑因素的过程。

以下是关于Android中创建文件及其权限设置的详细流程:确定存储位置:首先,你需要确定文件应该存储在哪里。

Android提供了多种存储选项,如内部存储、外部存储(如SD卡)等。

内部存储通常更安全,因为其他应用无法直接访问这些文件,除非设备被root。

外部存储则允许其他应用和用户访问文件,但需要考虑安全性和隐私问题。

检查权限:根据你的应用目标和Android版本,你可能需要在运行时请求存储权限。

对于Android 6.0(API级别23)及以上版本,你需要在AndroidManifest.xml中声明WRITE_EXTERNAL_STORAGE权限,并在运行时请求它。

用户可以在设备的设置中随时撤销这些权限,因此你的应用应该能够妥善处理权限被拒绝的情况。

创建文件:使用Java的File类或Android的FileOutputStream、FileWriter等类来创建文件。

指定文件的路径和名称,并确保路径是有效的。

捕获并处理可能出现的IOException。

设置文件权限:对于在外部存储上创建的文件,你可以使用File.setReadable()、File.setWritable()等方法来设置文件的读写权限。

需要注意的是,这些方法并不总是可靠,特别是在不同的Android版本和设备上。

一般来说,更安全的做法是通过应用管理文件,而不是依赖文件系统权限。

考虑兼容性:不同的Android版本和设备可能对文件存储和权限有不同的限制和行为。

确保你的应用在不同环境下都能正常工作,特别是在处理文件和权限时。

清理和管理文件:定期清理不再需要的文件,以释放存储空间。

提供用户管理文件的选项,如删除、备份等。

总的来说,Android中创建文件和设置权限是一个涉及多个方面的复杂过程,需要仔细考虑并遵循最佳实践来确保应用的稳定性和用户的数据安全。

自己制作安卓ROM包教程

自己制作安卓ROM包教程

ROM包的制作教程制作方法一、ROOT目前的民间ROM 基本上已经自带ROOT 所以省略此步骤当然前提得是ROOT过的二、工具准备下载安装附件中的R.explorer管理器(rootexplorer.v2.9.4.apk)这个工具的作用是备份APK 文件、删除APK文件、查看系统目录里面都有什么下载附件中的AndroidResEdit_By_hanhualan...解压到电脑里(如果不能运行则说明你需要安装.NET Framework 2.0)我们主要用这个来对定制包签名三、定制包制作知识一般定制ROM(不是美化、也不是制作MOD)其实就是对手机内存里的system/app文件夹的内容进行自定义,自己安装的软件将不会出现在这里,而是\data\文件夹中。

系统所有的程序都在这个文件夹里,比如浏览器、拨号器、联系人等先来看一下通常情况下这个文件夹里都包含什么:\system\app\AlarmClock.apk 闹钟\system\app\AlarmClock.odex\system\app\Browser.apk 浏览器\system\app\Browser.odex\system\app\Bugreport.apk Bug报告\system\app\Bugreport.odex\system\app\Calculator.apk 计算器\system\app\Calculator.odex\system\app\Calendar.apk 日历\system\app\Calendar.odex\system\app\CalendarProvider.apk 日历提供\system\app\CalendarProvider.odex\system\app\Camera.apk 照相机\system\app\Camera.odex\system\app\com.amazon.mp3.apk 亚马逊音乐\system\app\Contacts.apk 联系人\system\app\Contacts.odex\system\app\DownloadProvider.apk 下载提供\system\app\DownloadProvider.odex\system\app\DrmProvider.apk DRM数字版权提供\system\app\DrmProvider.odex\system\app\Email.apk 电子邮件客户端\system\app\Email.odex\system\app\FieldTest.apk 测试程序\system\app\FieldTest.odex\system\app\GDataFeedsProvider.apk GoogleData提供\system\app\GDataFeedsProvider.odex\system\app\Gmail.apk Gmail电子邮件\system\app\Gmail.odex\system\app\GmailProvider.apk Gmail提供\system\app\GmailProvider.odex\system\app\GoogleApps.apk 谷歌程序包\system\app\GoogleApps.odex\system\app\GoogleSearch.apk 搜索工具\system\app\GoogleSearch.odex\system\app\gtalkservice.apk GTalk服务\system\app\gtalkservice.odex\system\app\HTMLViewer.apk HTML查看器\system\app\HTMLViewer.odex\system\app\IM.apk 即使通讯组件包含MSN、yahoo通\system\app\ImCredentialProvider.apk\system\app\ImProvider.apk\system\app\ImProvider.odex\system\app\Launcher.apk 启动加载器\system\app\Launcher.odex\system\app\Maps.apk 电子地图\system\app\Maps.odex\system\app\MediaProvider.apk 多媒体播放提供\system\app\MediaProvider.odex\system\app\Mms.apk 短信、彩信\system\app\Mms.odex\system\app\Music.apk 音乐播放器\system\app\Music.odex\system\app\MyFaves.apk T-Mobile MyFaves程序\system\app\MyFaves.odex\system\app\PackageInstaller.apk apk安装程序\system\app\PackageInstaller.odex\system\app\Phone.apk 电话拨号器\system\app\Phone.odex\system\app\Settings.apk 系统设置\system\app\Settings.odex\system\app\SettingsProvider.apk 设置提供\system\app\SettingsProvider.odex\system\app\SetupWizard.apk 设置向导\system\app\SetupWizard.odex\system\app\SoundRecorder.apk 录音工具\system\app\SoundRecorder.odex\system\app\Street.apk 街景地图\system\app\Street.odex\system\app\Sync.apk 同步程序\system\app\Sync.odex\system\app\Talk.apk 语音程序\system\app\Talk.odex\system\app\TelephonyProvider.apk 电话提供\system\app\TelephonyProvider.odex\system\app\Updater.apk 更新程序\system\app\Updater.odex\system\app\V ending.apk 制造商信息\system\app\V ending.odex\system\app\V oiceDialer.apk 语音拨号器\system\app\V oiceDialer.odex\system\app\Y ouTube.apk Y outube视频\system\app\Y ouTube.odex然后是定制包的结构,定制包的命名一般是XXXX(英文).zip内容包括/system/app/my.apk(你想要放进系统中的程序)/META-INF/com/google/update-script(定制包脚本)/META-INF/CERT.SF(签名文件)/META-INF/CERT.RSA(签名文件)/META-INF/MANIFEST.MF(签名文件)(附件中的custom.zip为范例,大家可以下载直接进行修改)首先应将准备好的程序放进这个ZIP包的/system/app目录里,只要将程序拖进附件中custom.zip的APP目录即可然后删除/META-INF/CERT.RSA和META-INF/CERT.SF这两个文件,为了签名做准备下面我们的来看最后一处需要编辑的地方——脚本四、脚本:现在我们对里面的文件有了大致的了解,那么举例说明,如果我们要做一个基于以上ROM 的定制包,那么大概要进行两种操作1.添加目录里的APK程序到ROM的system/app里2.从ROM里删除APK程序(即瘦身)3.显示进程添加目录的语句为copy_dir PACKAGE:定制包路径手机内存路径删除程序的语句为delete 手机内存路径显示进程语句为show_progress脚本文件可用TXT、记事本等程序作为打开方式并编辑保存作为初学者只需要掌握以下范例即可show_progress 0.1 0delete SYSTEM:app/DivXRegCode.odexdelete SYSTEM:app/Y ouTube.apkcopy_dir PACKAGE:system SYSTEM:show_progress 0.1 10其中对前后两个show_progress语句不需要理解,看中间的,第一句是删除system/spp文件夹内的DivXRegCode.odex文件,第二句是删除system/spp文件夹内的Y ouTube.apk文件,第三句是复制(同时会覆盖已存在的文件)定制包中的system文件夹到手机内存的system 文件夹。

实现一个简单的文件系统

实现一个简单的文件系统

实现一个简单的文件系统一个简单的文件系统是指一个用于管理文件和文件夹的系统,可以进行基本的文件和文件夹的创建、删除、重命名、查找、打开、关闭等操作。

以下是一个简单文件系统的实现,主要包括文件和文件夹的数据结构和相关操作。

1.数据结构:- 文件(File):包含文件名、文件内容、创建时间、修改时间等属性。

- 文件夹(Folder):包含文件夹名、文件夹路径、创建时间、修改时间等属性,以及包括的文件和文件夹列表。

2.操作:-创建文件夹:可以根据输入的文件夹名和路径,在对应的位置创建一个新的文件夹对象,并将其添加到上级文件夹的文件夹列表中。

-创建文件:可以根据输入的文件名和路径,在对应的位置创建一个新的文件对象,并将其添加到对应的文件夹的文件列表中。

-删除文件夹:可以根据输入的文件夹名和路径,将对应的文件夹对象从上级文件夹的文件夹列表中删除,并删除其包含的所有文件和文件夹。

-删除文件:可以根据输入的文件名和路径,将对应的文件对象从所在文件夹的文件列表中删除。

-重命名文件夹:可以根据输入的原文件夹名和路径以及新文件夹名,将对应的文件夹对象重命名。

-重命名文件:可以根据输入的原文件名和路径以及新文件名,将对应的文件对象重命名。

-查找文件夹/文件:可以根据输入的文件夹名和路径,查找对应的文件夹对象。

-打开文件:可以根据输入的文件名和路径,打开对应的文件对象,并显示其内容。

-关闭文件:可以关闭当前打开的文件。

3.实现:- 定义一个文件夹类(Folder),包含文件夹名、文件夹路径、创建时间、修改时间等属性,以及一个存储文件夹对象的列表。

- 定义一个文件类(File),包含文件名、文件内容、创建时间、修改时间等属性。

- 实现创建文件夹的方法(createFolder),在对应的位置创建一个新的文件夹对象,并将其添加到上级文件夹的文件夹列表中。

- 实现创建文件的方法(createFile),在对应的位置创建一个新的文件对象,并将其添加到对应的文件夹的文件列表中。

如何使用Android Studio进行布局设计和界面编写(十)

如何使用Android Studio进行布局设计和界面编写(十)

如何使用Android Studio进行布局设计和界面编写Android Studio是一款专门用于Android应用开发的集成开发环境(IDE),它提供了许多强大的工具和功能,使开发者可以更轻松地设计应用程序的布局和界面。

本文将介绍如何使用Android Studio进行布局设计和界面编写的步骤和技巧。

一、创建新的布局文件在Android Studio中,可以使用XML文件来定义应用程序的布局。

首先,我们需要创建一个新的布局文件。

在项目视图中,右键单击“res”文件夹,选择“New” -> “Android resource file”。

在弹出的对话框中,填写文件名和文件类型(在这里我们选择“layout”类型),然后点击确定。

二、使用布局编辑器进行设计创建好布局文件后,我们可以使用布局编辑器来设计应用程序的界面。

点击“Design”选项卡,即可进入布局编辑模式。

接下来,我们将介绍布局编辑器中的一些常用功能。

1. 布局容器布局容器用于定义和管理界面上的视图组件的排列方式。

Android Studio提供了各种类型的布局容器,如线性布局(LinearLayout)、相对布局(RelativeLayout)和帧布局(FrameLayout)等。

通过拖拽和调整组件的位置和大小,我们可以在布局容器中创建所需的布局结构。

2. 视图组件视图组件是应用程序界面的基本单元,如按钮、文本框和图片等。

在布局编辑器中,我们可以从左侧的“Palette”面板中选择不同类型的视图组件,并在布局容器中进行布局设置。

3. 属性面板属性面板用于编辑和设置视图组件的属性。

在布局编辑器中,选中一个视图组件后,右侧的属性面板将显示该组件的属性列表。

我们可以通过修改属性值,调整组件的外观和行为。

三、编写界面逻辑和事件处理设计好界面的布局后,我们需要为视图组件添加逻辑和事件处理。

在Android Studio中,可以通过编写Java代码来实现这些功能。

如何使用Android Studio进行布局设计和界面编写(二)

如何使用Android Studio进行布局设计和界面编写(二)

I. 简介在移动应用开发中,界面设计与布局是非常重要的环节。

使用Android Studio作为开发工具,可以轻松实现布局设计和界面编写。

本文将介绍如何使用Android Studio进行布局设计和界面编写的一些基本步骤和技巧。

II. 安装和设置首先,确保你已经在计算机上成功安装了Android Studio。

安装完成后,打开Android Studio,并选择新建项目。

接下来,选择适合你项目的最低API级别和目标API级别。

一般情况下,选择较高的最低API级别可以兼容更多的设备。

III. 布局设计在Android Studio中,布局设计使用的是XML语言来描述界面的结构和样式。

最常用的布局类型是LinearLayout和RelativeLayout,它们可以实现不同的屏幕布局。

布局文件可以通过拖拽和预览的方式进行设计。

1. 创建布局文件在项目的res目录下找到layout文件夹,右键点击选择“New -> Layout resource file”,然后命名文件并选择布局类型。

创建完成后,就可以在布局文件中添加和编辑各种视图组件。

2. 添加组件在布局文件中,可以通过在XML中添加组件来构建界面。

例如,可以使用TextView显示文本内容,使用Button添加按钮操作,使用ImageView显示图像等。

在XML中为每个组件设置ID和属性,以定义其在界面布局中的样式和位置。

3. 约束布局Android Studio还支持约束布局,它可以更灵活地定位和调整视图组件的位置。

通过拖拽和连接各个视图组件之间的边界和约束,可以进行更自由的布局。

约束布局的使用需要一些练习和对视图关系的理解。

IV. 界面编写在完成布局设计后,需要对界面进行编写,即为各个组件添加相应的功能和逻辑。

界面编写主要使用Java语言来实现。

1. 创建活动在项目的Java目录下,找到包名,右键点击选择“New -> Activity -> Empty Activity”,然后命名新的活动。

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

android文件系统制作教程1)认识android文件系统分区splash1 :开机画面,Nandroid备份为splash1.imgrecovery :设备序列号为mtd1,该分区是恢复模式(即开机按Home+End进入的界面),Nandroid备份为recovery.imgboot :设备序列号为mtd2,底层操作系统内核启动分区,挂载为/目录,Nandroid备份为boot.imgsystem :设备序列号为mtd3,G1的Android核心平台,挂载为/system目录,通常为只读,Nandroid备份为system.imgcache :设备序列号为mtd4,G1的缓存临时文件夹,挂载为 /cache目录,事实上除了T-mobile的OTA更新外,别无用处,Nandroid备份为cache.imguserdata:设备序列号为mtd5,G1中用户安装的软件以及各种数据,挂载为/data目录,Nandroid备份为data.img2)常用的fastboot命令重启G1:$ fastboot reboot刷所有分区并重启手机$ fastboot flashall刷指定分区:$ fastboot flash {partition} {file.img}如:fastboot flash system /备份/system.img擦除分区:$ fastboot erase {partition}如:fastboot erase system使用update.zip整体刷新$ fastboot update {update.zip}刷自定义开机画面:$ fasboot flash splash1 mysplash.rgb5653)利用Makefile制作update.zip从update.zip这个刷机包反推的介绍整个android文件系统的制作过程并编写了一个Makefile文件,利用 Makefile的”依赖检查”机制管理各种文件的生成步骤和依赖关系;-1.前期准备将所有的文件都放在/home/xiaoliang/workspace 目录下,目录下有这些文件夹:auto-sign data system META-INF root两个环境变量含义和必须的目录:SRC_HOME : android源代码所在的目录,例如我放在 /home/xiaoliang/android_src 下JAVA_HOME: JAVA SDK的目录,我的是 /server/jdk1.5.0_210.进行一次源代码编译1.然后看下面的Makefile#设置环境变量,JAVA_HOME默认就有SRC_HOME=/home/liangwei/android_src#它依赖于system,data,META-INF三个目录和一个boot.img镜像,并且它需要签名update.zip : boot.img $(shell find system data META-INF)#生成update_unsign.zipzip -qr update_unsign.zip system data META-INF boot.img#签名$(JAVA_HOME)/bin/java -jar auto-sign/signapk.jar auto-sign/testkey.x509.pem auto-sign/ testkey.pk8 update_unsign.zip update.zip#删除中间文件rm -f update_unsign.zip#依赖于ramdisk.img 和 kernel.img 两个镜像boot.img:ramdisk.img kernel.img#使用mkbootimg制作$(SRC_HOME)/out/host/linux-x86/bin/mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel kernel.img --ramdisk ramdisk.img -o boot.img#其实它就是源码编译后生成的zImage,拷贝过来改个名字kernel.img:$(SRC_HOME)/kernel/msm/arch/arm/boot/zImagecp -f $(SRC_HOME)/kernel/msm/arch/arm/boot/zImage ./kernel.img#是将root文件夹使用mkbootfs制作的镜像ramdisk.img:$(shell find root)$(SRC_HOME)/out/host/linux-x86/bin/mkbootfs ./root |gzip > ramdisk.img2.总结一下,其实update.zip主要就是三个部分组成:启动部分: root文件夹 + zImage内核镜像 = boot.img系统文件部分: system文件夹用户文件部分: data文件夹就是:root + system + data + zIamage = update.zip3.文件的出处root,system,data文件夹: 来自”$(SRC_HOME)/out/target/product/generic”zIamage: 来自”$(SRC_HOME)/kernel/msm/arch/arm/boot/zImage”4.刷机脚本:META-INF文件夹该需要自己创建,并且里面包含1个文件 : com/google/android/update-script ,内容为: show_progress 0.500000 0format SYSTEM:copy_dir PACKAGE:system SYSTEM:set_perm_recursive 0 0 0755 0644 SYSTEM:set_perm_recursive 0 2000 0755 0755 SYSTEM:binset_perm 0 3003 02755 SYSTEM:bin/netcfgset_perm 0 3004 02755 SYSTEM:bin/pingset_perm 0 0 04755 SYSTEM:bin/suset_perm 1002 1002 0440 SYSTEM:etc/dbus.confset_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooksset_perm 0 2000 0550 SYSTEM:etc/init.goldfish.shset_perm_recursive 0 0 0755 0555 SYSTEM:etc/pppshow_progress 0.200000 0delete_recursive DATA:dalvik-cachecopy_dir PACKAGE:data DATA:set_perm_recursive 1000 1000 0771 0555 DATA:dalvik-cachewrite_raw_image PACKAGE:boot.img BOOT:show_progress 0.200000 104)makefile脚本,制作各种单独的分区文件ramdisk.img,system.img,boot.img#***********************************#build android rom script#***********************************SRC_HOME=/home/liangwei/android_srcupdate.zip : boot.img $(shell find system data META-INF)rm -rf update_unsign.zipzip -qr update_unsign.zip system data META-INF boot.img$(JAVA_HOME)/bin/java -jar auto-sign/signapk.jar auto-sign/testkey.x509.pem auto-sign/ testkey.pk8 update_unsign.zip update.ziprm -f update_unsign.zipboot.img:ramdisk.img kernel.img$(SRC_HOME)/out/host/linux-x86/bin/mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel kernel.img --ramdisk ramdisk.img -o boot.imgkernel.img:$(SRC_HOME)/kernel/msm/arch/arm/boot/zImagecp -f $(SRC_HOME)/kernel/msm/arch/arm/boot/zImage ./kernel.imgkernel-qemu:$(SRC_HOME)/kernel/common/arch/arm/boot/zImagecp -f $(SRC_HOME)/kernel/common/arch/arm/boot/zImage ./kernel-qemuramdisk.img:$(shell find root)$(SRC_HOME)/out/host/linux-x86/bin/mkbootfs ./root |gzip &gt; ramdisk.imgsystem.img : $(shell find system)$(SRC_HOME)/out/host/linux-x86/bin/mkyaffs2image ./system system.imguserdata.img:$(shell find data)$(SRC_HOME)/out/host/linux-x86/bin/mkyaffs2image ./data userdata.imguserdata-qemu.img:userdata.imgrm -rf userdata-qemu.imgcp userdata.img userdata-qemu.imginitlogo.rle:logo.pngconvert -depth 8 logo.png rgb:logo.raw$(SRC_HOME)/out/host/linux-x86/bin/rgb2565 -rle &lt;logo.raw &gt;initlogo.rlecp -rf initlogo.rle data/data/com.android.mysplash/rm -rf logo.raw.PHONY:runrun:system.img ramdisk.img kernel-qemu userdata-qemu.img/server/android-sdk-linux_86/tools/emulator -show-kernel -sysdir ./5)两行命令从png制作启动界面initlogo.rle用图片工具编辑好想要的png之后,保存为logo.png在logo.png所在命令下执行命令:#使用ImageMagick自带的convert命令,进行raw格式转换convert -depth 8 logo.png rgb:logo.raw#android自带的rgb2565工具,对raw文件进行rle565格式转换$(SRC_HOME)/out/host/linux-x86/bin/rgb2565 -rle <logo.raw >initlogo.rle#然后将initlogo.rle拷贝到android系统根目录,也就是root目录底下cp initlogo.rle root/#删除中间文件rm -f logo.raw。

相关文档
最新文档