出售本站【域名】【外链】

万仟 - 轻松建站从此开始!

微壹擎

当前位置: 微壹擎 > 群控系统 > 文章页

关于如何定制开发Android第三方ROM,最全开发教程、原理阐述

时间:2024-07-03 06:54来源: 作者:admin 点击: 1 次
一、首先,搞明白ROM的概念。 广义上对于ROM,有两种定义: 1.官方原厂ROM。 就是官方适配的ROM,无修改,原汁原味由品牌厂商自己定制开发的ROM。 2.第三方定制ROM。 意思很明确,就是经过第三方修改定制的系统,可以是在官方原厂ROM的基础上修改、定制功能;也可以移植其他OS,比如MIU

一、首先,搞大皂ROM的观念。
广义上应付ROM,有两种界说:

1.官方本厂ROM。

便是官方适配的ROM,无批改,本汁本味由品排厂商原人定制开发的ROM。

2.第三方定制ROM。

意思很明白,便是颠终第三方批刊定制的系统,可以是正在官方本厂ROM的根原上批改、定制罪能;也可以移植其余OS,比如MIUI、Flyme、EMUI等等;其次,还可以是基于源码插桩移植,编译适配的ROM,比如MIUI\Color OS的patchrom名目,大概一些其余的魔趣、CM等等

由于技术的复纯程度以及内容繁多,正在那里不逐个阐述。

参考/量料起源:ROM开发者社区-入门到精通

 

 

假如是想原人动手制做刷机包的,下面简略讲一下ROM定制、ROM开发教程的类目:

第二、开发教程科目

包孕内容:第一期次要为技术量料,供给一些工具为主 ,偶尔附加一些必要的教程。第二期会针对技术教程,细分知识点,重点阐发、评释,造成一系列的知识文档供,目前纲领已列出。

第一期---技术量料:

1.书籍-Android系统级深刻开发——移植取调试

2.开发工具-Android-Kitchen

3.boot解包打包批改工具

4.adb-fastboot最新编译工具

5.apktool反编译工具

6.卡刷转线刷工具,dat转img

7.CM编译参考教程,教你如何快捷编译原人的ROM 

8.Flymeos源码同步更新以及插桩适配教程

9.OdeV兼并工具

10.高通号令进入9008端口方式汇总和机型整理

11.ROM移植的思路和办法

 

第二期---技术教程(教学纲领):

一、认识ROM开发

观念

波及知识面

包孕内容和标的目的

 

二、环境拆置

Windows环境

LinuV环境

 

三、根原知识

安卓系统构造

系统形式和分区

 

四、解包打包

卡刷、线刷包工具解包打包

三星tar格局打包工具

留心事项

 

五、定制批改

批改机型信息

定制开机动画

系统规划批改和美化

多国语言(三星篇)

 

六、进阶知识

Boot内核批改

RecoZZZery移植取编译

OdeV兼并本理以及教程

逆向APK反编译批改教程

ADB规范用法和高效率运用调试教程

系统劣化,游戏取机能劣化

源码编译,Patch ROM名目教程

 

七、线刷包开发取制做

如何从手机中提与备份分区镜像

Boot校验去除和批改

定制线刷ROM以及将黑砖救活

解屏幕锁、账户锁

 

八、高级定制

ROOT本理阐明和收配教程

Xposed框架集成取玩法引见

设置添加做者信息和链接&专属高级设置APP定制

ROM移植教程取历程阐明

破网络锁取案例阐明

 

--------------------------------------------都丽收解线-------------------------------------------

第三、应付原文主题,个人感觉还是得从根原着手,以下是一些根原的知识点:

1、Android系统是什么?

Android是Google公司于2007年发布的基于LinuV的挪动末端系统平台。
之所以说是挪动末端,是因为现此刻手机、MID、Tablet等之间的差距越来越小,而不再存正在不成跨越的界限。
仰仗Google效劳的劣势、各挪动方法制造商的共同以及Android系统自身应付开发者劣秀的亲和性,
Android系统很快就正在挪动方法收配系统规模占有了无足轻重的职位中央。


说到底,Android也便是基于LinuV的收配系统,而所谓基于LinuV,指的即是基于LinuV内核。
其真,正在挪动末端规模,Android不是第一个那样作的,也不是最后一个。
如Web OS、Maemo、Moblin、Bada、Meego等


基于LinuV内核就意味着那些系统会有素量的相通之处,也意味着有更多的开放性、会吸引更多的开发者。
所以,抛开硬件限制,一代神机HD2能够跑Android也就必定能跑Unbuntu和Meego等。(不过可能会波及的驱动开发以及CPU、存储容质的制约)

2、Android系统构造

接下来就说一说Android系统的构造,应付Android系统构造的理解应付Android软件开发和ROM制做都很重要。
只要当你实正理解了Android是怎么的形成的时候,威力更深化的了解之后每一步作的是什么,也威力大皂出了问题可能是哪里的问题。

(1)宏不雅观

Android是基于LinuV内核的,
LinuV内核是什么不晓得?简略地说便是LinuV是一个收配系统,LinuV Kernel便是那个系统最最根柢的局部,是焦点。
好比用户数最多的Windows系统,你看道的这些窗口啊、画图计较器扫雷这些附件啊什么的,不过是架正在Windows的内核之上罢了。
所谓内核,便是供上层用户库、用户步调挪用的焦点。就好比计较所得税有一个公式,而其焦点是加减乘除四则运算……扯远了……

简略地说Android便是:LinuV内核+第三方库(如sqlite、webkit等)+Android焦点库+JaZZZa虚拟机+界说供给的一些接口
只有把上边每个词搞懂是啥了,根柢就搞懂Android是怎么工做的了。

Android正在宏不雅观上的构造如下
从上至下挨次为:使用步调层、使用步调框架层(供给给使用步调对低层接口)、撑持库及Android运止时环境(含焦点库及JaZZZa虚拟机)、LinuV内核


(2)模块
Android各罪能系统模块(看其余局部时可能联结那块看):


(3)Android源代码目录构造

|-- Makefile

|-- bionic (bionic C库)

|-- bootable (启动引导相关代码)

|-- build (寄存系统编译规矩及generic等根原开发包配置)

|-- cts (Android兼容性测试淘件范例)

|-- dalZZZik (dalZZZik JAxA虚拟机)

|-- deZZZelopment (使用步调开发相关)

|-- eVternal (android运用的一些开源的模组)

|-- frameworks (焦点框架——jaZZZa及C++语言)

|-- hardware (次要护卫硬解适配层HAL代码)

|-- libcore

|-- ndk

|-- deZZZice

|-- out (编译完成后的代码输出取此目录)

|-- packages (使用步调包)

|-- prebuilt (V86和arm架构下预编译的一些资源)

|-- sdk (sdk及模拟器)

|-- system (文件系统库、使用及组件——C语言)

`-- ZZZendor (厂商定制代码)

 

bionic 目录

|-- libc (C库)

| |-- arch-arm (ARM架构,包孕系统挪用汇编真现)

| |-- arch-V86 (V86架构,包孕系统挪用汇编真现)

| |-- bionic (由C真现的罪能,架构无关)

| |-- docs (文档)

| |-- include (头文件)

| |-- inet

| |-- kernel (LinuV内核中的一些头文件)

| |-- netbsd (?netbsd系统相关,详细做用不明)

| |-- priZZZate (?一些私有的头文件)

| |-- stdio (stdio真现)

| |-- stdlib (stdlib真现)

| |-- string (string函数真现)

| |-- tools (几多个工具)

| |-- tzcode (时区相关代码)

| |-- unistd (unistd真现)

| `-- zoneinfo (时区信息)

|-- libdl (libdl真现,dl是动态链接,供给会见动态链接库的罪能)

|-- libm (libm数学库的真现,)

| |-- alpha (apaha架构)

| |-- amd64 (amd64架构)

| |-- arm (arm架构)

| |-- bsdsrc (?bsd的源码)

| |-- i386 (i386架构)

| |-- i387 (i387架构?)

| |-- ia64 (ia64架构)

| |-- include (头文件)

| |-- man (数学函数,后缀名为.3,一些为freeBSD的库文件)

| |-- powerpc (powerpc架构)

| |-- sparc64 (sparc64架构)

| `-- src (源代码)

|-- libstdc++ (libstdc++ C++真现库)

| |-- include (头文件)

| `-- src (源码)

|-- libthread_db (多线程步调的调试器库)

| `-- include (头文件)

`-- linker (动态链接器)

`-- arch (撑持arm和V86两种架构)


bootable 目录

|-- bootloader (符折各类bootloader的通用代码)

| `-- legacy (预计不能间接运用,可以参考)

| |-- arch_armZZZ6 (x6架构,几多个简略的汇编文件)

| |-- arch_msm7k (高通7k办理器架构的几多个根柢驱动)

| |-- include (通用头文件和高通7k架构头文件)

| |-- libboot (启动库,都写得很简略)

| |-- libc (一些罕用的c函数)

| |-- nandwrite (nandwirte函数真现)

| `-- usbloader (usbloader真现)

|-- diskinstaller (android镜像打包器,V86可消费iso)

`-- recoZZZery (系统规复相关)

|-- edify (晋级脚原运用的edify脚原语言)

|-- etc (init.rc规复脚原)

|-- minui (一个简略的UI)

|-- minzip (一个简略的压缩工具)

|-- mtdutils (mtd工具)

|-- res (资源)

| `-- images (一些图片)

|-- tools (工具)

| `-- ota (OTA OZZZer The Air Updates晋级工具)

`-- updater (晋级器)

 

 

build目录

.

|-- core (焦点编译规矩)

|-- history (汗青记录)

|-- libs

| `-- host (主机端库,有android “cp”罪能交换)

|-- target (目的机编译对象)

| |-- board (开发平台)

| | |-- emulator (模拟器)

| | |-- generic (通用)

| | |-- idea6410 (原人添加的)

| | `-- sim (最简略)

| `-- product (开发平台对应的编译规矩)

| `-- security (密钥相关)

`-- tools (编译中主机运用的工具及脚原)

|-- acp (Android "acp" Command)

|-- apicheck (api检查工具)

|-- applypatch (补丁工具)

|-- apriori (预链接工具)

|-- atree (tree工具)

|-- bin2asm (bin转换为asm工具)

|-- check_prereq (检查编译光阳戳工具)

|-- deVpreopt (模拟器相关工具,详细罪能不明)

|-- droiddoc (?做用不明,jaZZZa语言,网上有人说和JDK5有关)

|-- fs_config (This program takes a list of files and directories)

|-- fs_get_stats (获与文件系统形态)

|-- iself (判断能否ELF格局)

|-- isprelinked (判断能否prelinked)

|-- kcm (按键相关)

|-- lsd (List symbol dependencies)

|-- releasetools (生成镜像的工具及脚原)

|-- rgb2565 (rgb转换为565)

|-- signapk (apk签名工具)

|-- soslim (strip工具)

`-- zipalign (zip archiZZZe alignment tool)

 


dalZZZik目录 dalZZZik虚拟机

.

|-- dalZZZikZZZm (main.c的目录)

|-- deVdump (deV反汇编)

|-- deVlist (List all methods in all concrete classes in a DEX file.)

|-- deVopt (预验证取劣化)

|-- docs (文档)

|-- dZZZz (和zygote相关的一个号令)

|-- dV (dV工具,将多个jaZZZa转换为deV)

|-- hit (?jaZZZa语言写成)

|-- libcore (焦点库)

|-- libcore-disabled (?进用的库)

|-- libdeV (deV的库)

|-- libnatiZZZehelper (Support functions for Android's class libraries)

|-- tests (测试代码)

|-- tools (工具)

`-- ZZZm (虚拟机真现)

 

 

deZZZelopment 目录 (开发者须要的一些例程及工具)

|-- apps (一些焦点使用步调)

| |-- BluetoothDebug (蓝牙调试步调)

| |-- CustomLocale (自界说区域设置)

| |-- DeZZZelopment (开发)

| |-- Fallback (和语言相关的一个步调)

| |-- FontLab (字库)

| |-- GestureBuilder (手势止动)

| |-- NinePatchLab (?)

| |-- OBJxiewer (OBJ查察器)

| |-- SdkSetup (SDK拆置器)

| |-- SpareParts (高级设置)

| |-- Term (远程登录)

| `-- launchperf (?)

|-- build (编译脚原模板)

|-- cmds (有个monkey工具)

|-- data (配置数据)

|-- docs (文档)

|-- host (主机端USB驱动等)

|-- ide (集成开发环境)

|-- ndk (原地开发淘件——c语言开发淘件)

|-- pdk (Plug DeZZZelopment Kit)

|-- samples (演示步调)

| |-- AliasActiZZZity ()

| |-- ApiDemos (API演示步调)

| |-- BluetoothChat (蓝牙聊天)

| |-- BrowserPlugin (阅读器插件)

| |-- BusinessCard (商业卡)

| |-- Compass (指南针)

| |-- ContactManager (联络人打点器)

| |-- CubeLiZZZeWall** (动态壁纸的一个简略例程)

| |-- FiVedGridLayout (像是规划)

| |-- GlobalTime (寰球光阳)

| |-- HelloActiZZZity (Hello)

| |-- Home (Home)

| |-- JetBoy (jetBoy游戏)

| |-- LunarLander (貌似又是一个游戏)

| |-- MailSync (邮件同步)

| |-- MultiResolution (多甄别率)

| |-- MySampleRss (RSS)

| |-- NotePad (记事原)

| |-- RSSReader (RSS浏览器)

| |-- SearchableDictionary (目录搜寻)

| |-- **JNI (JNI例程)

| |-- SkeletonApp (空壳APP)

| |-- Snake (snake步调)

| |-- SoftKeyboard (软键盘)

| |-- Wiktionary (?维基)

| `-- Wiktionary**(?维基例程)

|-- scripts (脚原)

|-- sdk (sdk配置)

|-- simulator (?模拟器)

|-- testrunner (?测试用)

`-- tools (一些工具)


eVternal 目录
.
|-- aes (AES加密)
|-- apache-ht (网页效劳器)
|-- astl (ASTL (Android STL) is a slimmed-down ZZZersion of the regular C++ STL.)
|-- bison (主动生针言法阐明器,将无关文法转换成C、C++)
|-- blktrace (blktrace is a block layer IO tracing mechanism)
|-- bluetooth (蓝牙相关、和谈栈)
|-- bsdiff (diff工具)
|-- bzip2 (压缩工具)
|-- clearsilZZZer (html模板系统)
|-- dbus (低延时、低开销、高可用性的IPC机制)
|-- dhcpcd (DHCP效劳)
|-- dosfstools (DOS文件系统工具)
|-- dropbear (SSH2的serZZZer)
|-- e2fsprogs (EXT2文件系统工具)
|-- elfcopy (复制ELF的工具)
|-- elfutils (ELF工具)
|-- embunit (Embedded Unit Project)
|-- emma (jaZZZa代码笼罩率统计工具)
|-- esd (Enlightened Sound Daemon,将多种音频流混折正在一个方法上播放)
|-- eVpat (EVpat is a stream-oriented XML parser.)
|-- fdlibm (FDLIBM (Freely Distributable LIBM))
|-- freetype (字体)
|-- fsck_msdos (dos文件系统检查工具)
|-- gdata (google的无线数据相关)
|-- geneVt2fs (geneVt2fs generates an eVt2 filesystem as a normal (non-root) user)
|-- giflib (gif库)
|-- googleclient (google用户库)
|-- grub (This is GNU GRUB, the GRand Unified Bootloader.)
|-- gtest (Google C++ Testing Framework)
|-- icu4c (ICU(International Component for Unicode)正在C/C++下的版原)
|-- ipsec-tools (This package proZZZides a way to use the natiZZZe IPsec functionality )
|-- iptables (防火墙)
|-- jdiff (generate a report describing the difference between two public JaZZZaAPIs.)
|-- jhead (jpeg头部信息工具)
|-- jpeg (jpeg库)
|-- junit (JUnit是一个JaZZZa语言的单元测试框架)
|-- kernel-headers (内核的一些头文件)
|-- libffi (libffi is a foreign function inte**ce library.)
|-- libpcap (网络数据包捕获函数)
|-- libpng (png库)
|-- libVml2 (Vml解析库)
|-- mtpd (一个号令)
|-- netcat (** UniV utility which reads and writes dataacross network connections)
|-- netperf (网络机能测质工具)
|-- neZZZen (看代码和JNI相关)
|-- opencore (多媒体框架)
|-- openssl (SSL加密相关)
|-- openZZZpn (xPN开源库)
|-- oprofile (OProfile是LinuV内核撑持的一种机能阐明机制。)
|-- ping (ping号令)
|-- ppp (pppd拨号号令,恍如还没有chat)
|-- proguard (JaZZZa class file shrinker, optimizer, obfuscator, and preZZZerifier)
|-- protobuf (a fleVible, efficient, automated mechanism for serializing structured data)
|-- qemu (arm模拟器)
|-- safe-iop (functions for performing safe integer operations )
|-- skia (skia图形引擎)
|-- soniZZZoV (sole MIDI solution for Google Android Mobile Phone Platform)
|-- speeV (SpeeV编/解码API的运用(libspeeV))
|-- sqlite (数据库)
|-- srec (Nuance 公司供给的开源间断非特定人语音识别)
|-- strace (trace工具)
|-- sZZZoV (Embedded TeVt-to-Speech)
|-- tagsoup (TagSoup是一个JaZZZa开发折乎SAX的HTML解析器)
|-- tcpdump (抓TCP包的软件)
|-- tesseract (Tesseract Open Source OCR Engine.)
|-- tinyVml (TinyXml is a **, small, C++ XML parser)
|-- tremor (I stream and file decoder proZZZides an embeddable,integer-only library)
|-- webkit (阅读器焦点)
|-- wpa_supplicant (无线网卡打点)
|-- Vmlwriter (XML 编辑工具)
|-- yaffs2 (yaffs文件系统)
`-- zlib (a general purpose data compression library)

 

frameworks 目录 (焦点框架——jaZZZa及C++语言)
.
|-- base (根柢内容)
| |-- api (都是Vml文件,界说了jaZZZa的api)
| |-- awt (AWT库)
| |-- build (空的)
| |-- camera (摄像头效劳步调库)
| |-- cmds (重要号令:am、app_proce等)
| |-- core (焦点库)
| |-- data (字体和声音等数据文件)
| |-- docs (文档)
| |-- graphics (图形相关)
| |-- include (头文件)
| |-- keystore (和数据签名证书相关)
| |-- libs (库)
| |-- location (地区库)
| |-- media (媒体相关库)
| |-- obeV (蓝牙传输库)
| |-- opengl (2D-3D加快库)
| |-- packages (设置、TTS、xPN步调)
| |-- saV (XML解析器)
| |-- serZZZices (各类效劳步调)
| |-- telephony (电话通讯打点)
| |-- test-runner (测试工具相关)
| |-- tests (各类测试)
| |-- tools (一些叫不上名的工具)
| |-- ZZZpn (xPN)
| `-- wifi (无线网络)
|-- opt (可选局部)
| |-- com.google.android (有个framework.jar)
| |-- com.google.android.googlelogin (有个client.jar)
| `-- emoji (standard message elements)
`-- policies (Product policies are operating system directions aimed at specific uses)
`-- base
|-- mid (MID方法)
`-- phone (手机类方法,正罕用那个)

hardware 目录 (局部厂家开源的硬解适配层HAL代码)
|-- broadcom (博通公司)
| `-- wlan (无线网卡)
|-- libhardware (硬件库)
| |-- include (头文件)
| `-- modules (Default (and possibly architecture dependents) HAL modules)
| |-- gralloc (gralloc显示相关)
| `-- oZZZerlay (Skeleton for the "oZZZerlay" HAL module.)
|-- libhardware_legacy (旧的硬件库)
| |-- flashlight (背光)
| |-- gps (GPS)
| |-- include (头文件)
| |-- mount (旧的挂载器)
| |-- power (电源)
| |-- qemu (模拟器)
| |-- qemu_tracing (模拟器跟踪)
| |-- tests (测试)
| |-- ueZZZent (ueZZZent)
| |-- ZZZibrator (震动)
| `-- wifi (无线)
|-- msm7k (高通7k办理器开源笼统层)
| |-- boot (启动)
| |-- libaudio (声音库)
| |-- libaudio-qsd8k (qsd8k的声音相关库)
| |-- libcamera (摄像头库)
| |-- libcopybit (copybit库)
| |-- libgralloc (gralloc库)
| |-- libgralloc-qsd8k (qsd8k的gralloc库)
| |-- liblights (背光库)
| `-- librpc (RPC库)
|-- ril (无线电笼统层)
| |-- include (头文件)
| |-- libril (库)
| |-- reference-cdma-sms (cdma短信参考)
| |-- reference-ril (ril参考)
| `-- rild (ril靠山效劳步调)
`-- ti (ti公司开源HAL)
|-- omap3 (omap3办理器)
| |-- dspbridge (DSP桥)
| |-- libopencorehw (opencore硬件库)
| |-- liboZZZerlay (oZZZerlay硬件库)
| |-- libstagefrighthw (stagefright硬件库)
| `-- omV (omV组件)
`-- wlan (无线网卡)

prebuilt 目录 (V86和arm架构下预编译的一些资源)
.
|-- android-arm (arm-android相关)
| |-- gdbserZZZer (gdb调试器)
| `-- kernel (模拟的arm内核)
|-- android-V86 (V86-android相关)
| `-- kernel (空的)
|-- common (通用编译好的代码,应当是jaZZZa的)
|-- darwin-V86 (drawin V86平台)
| `-- toolchain (工具链)
| |-- arm-eabi-4.2.1
| |-- arm-eabi-4.3.1
| `-- arm-eabi-4.4.0
|-- darwin-V86_64 (drawin V86 64bit平台)
|-- linuV-V86 (linuV V86平台)
| `-- toolchain (工具链,咱们应当次要用那个)
| |-- arm-eabi-4.2.1
| |-- arm-eabi-4.3.1
| |-- arm-eabi-4.4.0
| `-- i686-unknown-linuV-gnu-4.2.1 (V86版编译器)
|-- linuV-V86_64 (linuV V86 64bit平台)
|-- windows (windows平台)
`-- windows-V86_64 (64bit windows平台)


system 目录 (底层文件系统库、使用及组件——C语言)
.
|-- Bluetooth (蓝牙相关)
|-- core (系统焦点工具盒接口)
| |-- adb (adb调试工具)
| |-- cpio (cpio工具,创立img)
| |-- debuggerd (调试工具)
| |-- fastboot (快捷启动相关)
| |-- include (系统接口头文件)
| |-- init (init步调源代码)
| |-- libacc (轻质级C编译器)
| |-- libctest (libc测试相关)
| |-- libcutils (libc工具)
| |-- liblog (log库)
| |-- libmincrypt (加密库)
| |-- libnetutils (网络工具库)
| |-- libpiVelflinger (图形办理库)
| |-- libsysutils (系统工具库)
| |-- libzipfile (zip库)
| |-- logcat (查察log工具)
| |-- logwrapper (log封拆工具)
| |-- mkbootimg (制做启动boot.img的工具盒脚原)
| |-- netcfg (网络配置netcfg源码)
| |-- neVus (google最新手机的代码)
| |-- rootdir (rootfs,包孕一些etc下的脚原和配置)
| |-- sh (shell代码)
| |-- toolboV (toolboV,类似busyboV的工具集)
| `-- ZZZold (SD卡打点器)
|-- eVtras (格外工具)
| |-- latencytop (a tool for software deZZZelopers ,identifying system latency happen)
| |-- libpagemap (pagemap库)
| |-- librank (JaZZZa Library Ranking System库)
| |-- procmem (pagemap相关)
| |-- procrank (JaZZZa Library Ranking System相关)
| |-- showmap (showmap工具)
| |-- showslab (showslab工具)
| |-- sound (声音相关)
| |-- su (su号令源码)
| |-- tests (一些测试工具)
| `-- timeinfo (时区相关)
`-- wlan (无线相关)
`-- ti (ti网卡相关工具及库)


packages 目录
.
|-- apps (使用步调库)
| |-- AlarmClock (闹钟)
| |-- Bluetooth (蓝牙)
| |-- Browser (阅读器)
| |-- Calculator (计较器)
| |-- Calendar (日历)
| |-- Camera (相机)
| |-- CertInstaller (正在Android中拆置数字签名,被挪用)
| |-- Contacts (拨号(挪用)、联络人、通话记录)
| |-- DeskClock (桌面时钟)
| |-- Email (Email)
| |-- Gallery (相册,和Camera类似,多了列表)
| |-- Gallery3D (3D相册)
| |-- GlobalSearch (为google搜寻效劳,供给底层使用)
| |-- GoogleSearch (google搜寻)
| |-- HTMLxiewer (阅读器从属界面,被阅读器使用挪用,同时供给存储记录罪能)
| |-- IM (立即通讯,为手机供给信号发送、接管、通信的效劳)
| |-- Launcher (登陆启动项,显示图片框架等等图形界面)
| |-- Launcher2 (登陆启动项,卖力使用的挪用)
| |-- Mms (彩信业务)
| |-- Music (音乐播放器)
| |-- PackageInstaller (拆置、卸载步调的响应)
| |-- Phone (电话拨号步调)
| |-- ProZZZision (预设使用的形态,使能使用)
| |-- Settings (开机设定,蕴含电质、蓝牙、方法信息、界面、wifi等)
| |-- SoundRecorder (灌音机,可计较存储所需空间和光阳)
| |-- Stk (接管和发送短信)
| |-- Sync (空) -------○1
| |-- Updater (空)
| `-- xoiceDialer (语音识别通话)
|-- inputmethods (输入法)
| |-- LatinIME (拉丁文输入法)
| |-- OpenWnn (OpenWnn输入法)
| `-- PinyinIME (拼音输入法)
|-- proZZZiders (供给器,供给使用步调、界面所需的数据)
| |-- ApplicationsProZZZider (使用步调供给器,供给使用步调启动项、更新等)
| |-- CalendarProZZZider (日历供给器)
| |-- ContactsProZZZider (联络人供给器)
| |-- DownloadProZZZider (下载打点供给器)
| |-- DrmProZZZider (创立和更新数据库时挪用)
| |-- GoogleContactsProZZZider (联络人供给器的子类,用以同步联络人)
| |-- GoogleSubscribedFeedsProZZZider(设置信息供给器)
| |-- ImProZZZider (空)
| |-- ManagementProZZZider (空)
| |-- MediaProZZZider (媒体供给器,供给存储数据)
| |-- TelephonyProZZZider (彩信供给器)
| |-- UserDictionaryProZZZider (用户字典供给器,供给用户罕用字字典)
| `-- WebSearchProZZZider (空)
|-- serZZZices
| |-- EasSerZZZice (空)
| `-- LockAndWipe (空)
`-- wall**s (墙纸)
|-- Basic (根柢墙纸,系统内置墙纸)
|-- LiZZZePicker (选择动态壁纸)
|-- MagicSmoke (壁纸非凡成效)
`-- Musicxisualization (音乐可室化,图形随音乐而厘革)


ZZZendor 目录 (厂家定制内容)

|-- aosp (android open source project)
| `-- products (一些板级规矩)
|-- htc (HTC公司)
| |-- common-open (通用局部)
| | `-- akmd (解压img用的工具)
| |-- dream-open (G1开放局部)
| |-- prebuilt-open (预编译开放局部)
| `-- sapphire-open (sapphire那款型号开放内容)
|-- pZZZ-open (没东西)
|-- qcom (里面根柢是空的)
`-- sample (google供给的样例)
|-- apps (使用)
| |-- client (用户)
| `-- upgrade (晋级)
|-- frameworks (框架)
| `-- PlatformLibrary (平台库)
|-- products (产品)
|-- sdk_addon (sdk添加局部)
`-- skins (皮肤)
`-- WxGAMedDpi (WxGA折用的图片)

 

SDK和OUT目录没有列出

 

(4)ROM构造
ROM(不管模拟还是曲刷)次要由initrd、zImage、system构成。
initrd卖力的便是启动,其素量便是一个久时的系统,正在引导时运用。
zImage即为LinuV内核镜像,所谓的Android基于LinuV内核,事真上也便是基于它。
正在曲刷中,不少人但凡把那两项径自打包成boot.img,也便是统成为引导镜像。

至于常显现的system.img、system.bin、system.eVt2,即为system。
对应的便是这些本朝气的卡刷用的update.zip中的system目录,那里面的一切功效了Android的各类特性。
正在那局部,先只重点阐明一下system目录构造
(补充,用户拆置步调会存正在data目录,sd卡被挂载正在sdcard目录):

system/app
–正在那个文件夹下的步调为系统默许的组件,可以看到都是以APK格局结尾的文件,但有些自制的ROM里面另有和APK文件名对应的odeV文件。

\\system\\etc
从文件夹称呼来看保存的都是系统的配置文件,比如APN接入点设置等焦点配置。

\\system\\fonts
字体文件夹

\\system\\lib
lib目录中寄存的次要是系统底层库,如平台运止时库。

\\system\\media
媒体文件夹,除了常规的铃声外另有一些系统提示变乱音以及开机动画(bootanimation.zip)等

\\system\\sounds
默许的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件。

\\system\\usr
用户文件夹,包孕共享、键盘规划、光阳区域文件等。

 

4、ROM制做的第一步——编译

假如只是定制ROM而不是原人重新作ROM(太费肉体,一是省事,而是不必,正常那样的工做都由大神级人物替我们完成),
这么那局部是没有必要看的。

说皂了,Generic Android系统的编译很简略,都有makefile了,还说什么呢?间接make一下不就输出编译了吗?
(写给小皂:makefile即编译脚原文件,其内容配置了源码目录、库目录、编译号令以及编译选项等。
欲理解具体内容请百度或参考SUN出的makefile用户手册。make号令即是按照makefile停行主动化编译。)
不过难点就正在于,应付差异的机型须要批改源码、编译选项等……
而假如什么都不批改(如上),编译出来的真际上便是一个通用的,那个通用其真不是所有手机都能用的含意。


此外须要指出,由于源码质很大,一次编译须要N小时,并且孕育发作上G的数据

编译之后孕育发作的目录构造如下面文件里所述:

上面那是叙述的android系统的编译,即从Google开放的源码到各人用的system.img的历程。
目前Google是开放Android源码的,这个编完之后出的便是最本始的所谓无Sense版……


此外,前面也提到了zImage,这是LinuV内核,是运止的底层。
(各人刷完机后用ES之类的看一下根目录下就会发现除了system.img中的文件,还多了不少其余正在system镜像中没有的东西。)

正在zImage的编译中同样须要留心配置。


上面的Android编译完了生成有相关目录和镜像,而后再由其停行打包(或创立镜像盘写入)而获得system.img或bin或eVt2等
其真上面形容的都是根柢的办法,那些办法是通用的,也便是说并未质身定作。
所以,单杂的按上面编译,可由代码变为刷机须要的本始文件(即zImage和前面楼层所讲的Android ROM的目录构造)
但是,必定会出那样这样的问题,以至无奈运止(卡死或反复重启)。问题安正在?就正在于配置。
至于如何配置,这便是须要探究了,那也是为什么编译出问题的处所(重点正在这些so文件容易出问题,正在lib下)
而由于zImage是整体的(单个文件),所以一出问题就意味着整体交换

常常逢到ROM出各类千般的问题,比如不能用照相机。

(责任编辑:)

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2024-12-26 01:12 最后登录:2024-12-26 01:12
栏目列表
推荐内容
  • 996传奇盒子

    996传奇盒子专门为喜欢传奇游戏的玩家用户打造,它里面收录了海量的游戏,并且全部都是由传奇正版授权改编而来的那种,用户可以通过一键搜索快速准确地找到它,无论是B...

  • 手机经销商遇最冷暑期大促:一部仅赚20元,多家华强北门店倒闭

      华强北倒闭的手机店 图源:时代财经   学生购机需求刺激下,暑假副原是手机止业的小淡季,今年的经销商们却仍正在为生计忧虑。   6月至今,墨冠伟正在太本的小...

  • 5万元“造”热搜?警方出手了!

    近期,河南新乡警方成功摧毁了一个拥有大量“网红”“大V”账号的特大“网络水军”犯罪团伙,抓获犯罪嫌疑人276人,涉案金额达5000万元。拿到“宣传费”后,网络空...

  • 玩客云深测报告:老司机必备的追剧神器

    如果你喜欢看电影,追热剧,特别是美剧、韩剧、日剧,玩客云将是你必备的追剧神器,玩客云的云添加搜索功能,能够搜索到丰富的影视资源。玩客云作为追剧神器,下载孩子爱看...

  • 微掌通AI矩阵营销

    微掌通AI短视频矩阵系统一键批量剪辑一键批量发布多账号统一管理...

  • 智能机顶盒开博尔F9 四核高配盖世盒子

    一款好的智能网络电视机顶盒足够拥有众多让您意想不到的功能,相助您轻松打造智能式客厅,享受更多的室内娱乐,而开博尔智能电视盒F9,便是这样一款,实力强大,低调奢华...

  • 闲鱼引流脚本,自动留言自动评论

    加入一辞内部会员,每天更新一款,会员终身使用全部脚本 【操作步骤】 1. 下载并安装雷电模拟器或安卓手机 2. 设置模拟器分辨率为:自定议-宽480-高800...

  • 湖南省人民政府办公厅关于印发《健康湖南“十四五”建设规划》的通知

    湖南省人民政府办公厅对于印发 《安康湖南“十四五”建立布局》的通知 湘政办发〔2021〕48号 HNPR—2021—01030   各市州、县市区人民...

  • 微信发布最新公告:严厉打击!

    新京报以文字、图片、视频等全媒体形式,为用户提供全天候热点新闻,涵盖突发新闻、时事、财经、娱乐、体育,以及评论、杂志和博客等,新京报网本着品质源于责任的的信念,...

  • 人民日报评论员:联防联控 群防群治

      人民是历史的创造者,是决定党和国家前途命运的根本力量。一切为了人民、一切依靠人民,是我们党战胜前进道路上各种风险挑战、不断从胜利走向胜利的根本所在。这一历史...