百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

安卓系统ROM DIY详细教程_安卓rom制作工具

toyiye 2024-04-03 23:10 35 浏览 0 评论

想要自己DIY ROM的朋友,很多时候都不知道怎么入手,首先就是先要了解ROM里面的文件架构,以及文件的作用!这里我们就详细的介绍一下ROM,DIY自己的ROM

【文件夹功能简介】

\system\app

这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\文件夹中。

\system\bin

这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件(命令)

\system\customize

这个目录下主要是系统的设置

\system\etc

从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。

\system\fonts

字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库,从T-Mobile G1上可以清楚的看到显示简体中文正常,其中DroidSansFallback.ttf文件大小 。

\system\framework

framework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。

\system\lib

lib目录中存放的主要是系统底层库,一些so文件,如平台运行时库。

\system\media

\system\media\audio

铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音。

\system\sounds

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

\system\usr

用户文件夹,包含共享、键盘布局、时间区域文件等。

主要修改的文件夹:

system/

app

customize

etc

fonts

framework

lib

xbin

build.prop

一、\system\app\的DIY

我这里举个例子

\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\Vending.apk 制造商信息

\system\app\Vending.odex

\system\app\VoiceDialer.apk 语音拨号器

\system\app\VoiceDialer.odex

\system\app\YouTube.apk Youtube视频

\system\app\YouTube.odex

\system\app\Metal.apk (金属皮肤)

\system\app\BlackBoard.apk (黑板皮肤)

\system\app\Wood.apk(木板皮肤)

如果没有odex,肯定是以classes.dex的形式写入了apk当中,没有可以不管

一般来说本人精简的内容如下:

AdobeReader (adobe的pdf阅读器,有更好的替代)

com.htc.FMRadioWidget (桌面收音机插件)

com.htc.FriendStreamWidget(好友流小插件)

com.htc.MusicWidget(桌面音乐插件)

com.htc.PlurkWidget(桌面Plurk插件)

com.htc.StockWidget(桌面股票插件)

com.htc.TwitterWidget(桌面Twitter插件)

DCSStock (股票后台传输程序)

DreyeAndroidHTC(Dr.eye是一个英语字典)

EReaderLibrary 在线小说阅读器(英文的没用)

EReaderViewer

EReaderWidget

facebook

Flickr Flickr应用(国内连不上,没啥用)

FriendStream (htc主推的社交推送软件,可以聚合Facebook,twitter等)

htcbookmarkwidget (HTC桌面收藏夹插件)

HtcCalculatorWidget (计算器Widget小插件)

htccontactwidgets (HTC联系人widgets小插件)

HtcFacebook(Facebook小插件)

HtcGreader(google新闻,都是英文新闻,目前没用)

HtcGreaderWidget (新闻小插件)

htcmailwidgetsHTC (Mail小插件)

htcmsgwidgets (短消息Widget插件)

HtcPhotoWidget (图片Widget插件)

HtcPushMedia.apk (一个应用,启动后弹出三个按钮:音乐、图片、视频)

HtcRecommends.apk (HTC Like)

HtcRecommendsWidget.apk (HTC Like插件)

HtcTipWidget.apk (操作提示小插件)

HtcTwitter.apk (Twitter小插件)

Quickoffice.apk (office软件的阅读,用更好的替代)

Stock.apk (英文股票程序)

twitter

youtube

一般来说需要更新的东西:

install_flash_player.apk (flash,这个最新版本在电子市场下载)10.1.106.16

Maps.apk(很多其他分辨率的东西,或者是版本不新,需要更新和精简) 5.0

Vending.apk(电子市场,我看很多官方,包括最新的1.84的官方都还不是最新的2.2.11) 2.2.11

二、customize修改

这下面有三个目录:CIDMNS resource

主要修改地方:

customize/default.xml

customize/CID/default.xml

customize/MNS/default.xml

CID和MNS下面除了default.xml的其他文件都可以删掉

1.customize/default.xml

这里修改的主要是语言键盘的设置

主要修改

<item name="defeault">IME</item>下的

<module name="language">

<module name="InputMethod">

这里就是改变HTC输入法国际键盘里面的语言和默认加载的输入法,比如拼音、手写啊之类的

English英语PinYin拼音Handwriting手写Stroke笔画

一般就留这么几个吧。。

我把它复制下来给大家参考:

<customization_form version="1.00">

<category name="system">

<module name="IME">

<function>

<set name="single">

<item name="defeault">IME</item>

</set>

</function>

</module>

<module name="language">

<function>

<set name="single">

<item name="total_list">en_GB;zh_CN;zh_TW;</item>

<item name="en_GB" type="boolean">yes</item>

<item name="zh_CN" type="boolean">yes</item>

<item name="zh_TW" type="boolean">yes</item>

<item name="defeault" >zh_CN</item>

</set>

</function>

</module>

<module name="InputMethod">

<function name="IME_language_set">

<set name="single">

<item name="English" type="boolean">yes</item>

<item name="PinYin" type="boolean">yes</item>

<item name="default">English</item>

</set>

</function>

<function name="IME_sip_set">

<set name="single">

<item name="total_list">Handwriting;PinYin;Stroke;</item>

<item name="Handwriting" type="boolean">yes</item>

<item name="PinYin" type="boolean">yes</item>

<item name="Stroke" type="boolean">yes</item>

<item name="default">PinYin</item>

</set>

</function>

</module>

2.customize/CID/default.xml

这里主要是开机时候的语言选择菜单、输入法的开启等等

找到<module name="locale">

这里就是开机时候选择语言的设置了

<item name="total_list">en_GB;zh_CN;zh_TW</item>,这里是总共所有的语言设置,一般我就保留这么三个,或者你觉得麻烦就直接留一个zh_CN

<item type="boolean" name="en_GB">yes</item>

<item type="boolean" name="zh_CN">yes</item>

<item type="boolean" name="zh_TW">yes</item>

这些是语言设置选择的列表和顺序。在上面的项显示的时候就越靠前,如果你想屏蔽一些语言,可以直接删掉或者把yes改成no

下面我给大家看看:

<module name="locale">

<function>

<set name="single">

<item name="total_list">en_GB;zh_CN;zh_TW</item>

<item type="boolean" name="en_GB">yes</item>

<item type="boolean" name="zh_CN">yes</item>

<item type="boolean" name="zh_TW">yes</item>

</set>

接下来是语言键盘设置:

在 <module name="InputMethod">

<function name="IME_language_set">

<item type="boolean" name="语言名称">yes</item>

比如英语

<item type="boolean" name="English">yes</item>

中文

<item type="boolean" name="Chinese">yes</item>

这里是所有汉字输入法的设置:

</function>

<function name="IME_sip_set">

<set name="single">

下面的项目改成这样就行了

<item name="total_list">Handwriting;PinYin;Stroke;</item>

<item type="boolean" name="Handwriting">yes</item>

<item type="boolean" name="PinYin">yes</item>

<item type="boolean" name="Stroke">yes</item>

注意,这里存在的汉字类项目在语言和键盘,国际键盘中才会显示

比如Cangjie ZuhYin这些是繁体和日文的输入法,直接删掉就可以

设备名称:

<module name="deviceData">

<module name="deviceData">

<function>

<set name="single">

<item name="device_name">你想要的名字</item>

</set>

开机动画和关机动画的设置(关机动画仅对DHD和DZ的系统有效)

</function>

</module>

</category>

<BootConfiguration>

<BootAnimation animation="/system/customize/resource/bootanimation.zip" audio="/system/customize/resource/android_audio.mp3" />

</BootConfiguration>

<ShutdownConfiguration>

<ShutdownAnimation image_png="/system/customize/resource/downanimation.zip" image="" fps="17" />

</ShutdownConfiguration>

</customization_form>

这里贴出的路径就是你存放动画和音乐的路径,比如有些作者喜欢放在data/local下面,就把/system/customize/resource/改成/data/local

就行了,在路径后面的比如bootanimition.zip就是动画文件的文件名

个人建议放在system下面,不然system剩余空间那么多不利用就是浪费了

3.customize/MNS/default.xml

这里就是比如主页面要放什么插件,在什么位置之类的,这个太烦,我也懒得看。。

一般来说改这么几个地方

<category name="system">

<module name="defaultLocale">

<function>

<set name="single">

<item name="auto_detect">false</item>

<item name="defeault">作者写的地区</item>

</set>

下面的东西改成这样

<category name="system">

<module name="defaultLocale">

<function>

<set name="single">

<item name="auto_detect">false</item>

<item name="defeault">zh_CN</item>

</set>

<function name="default_IKB_settings_checked">

<set name="single">

<item name="checked_list_latin">English;France;……还有 很多</item>

这里留一个English就行了

日期时间默认格式:

<module name="defaultTimeFormatSetting">

<function>

<set name="single">

<item name="default">作者写的</item>

</set>

把<item name="default">作者写的</item>改成你想要的

yyyy是年,MM或者MMM是月份,d是天,EE是周

比如你喜欢2011/2/2那就改成yyyy/MM/d

如果你喜欢2011年2月2日,周三,那就改成yyyy MMM d, EE

</function>

</module>

<module name="defaultTimeFormatSettingShort">

<function>

<set name="single">

<item name="default">作者写的</item>

这里修改方法和上面一样,只不过没有yyyy而已

一般来说这里我们要删除worldclockdefaultcities和<module name="Newsstand">的所有东西,避免刷完系统耗费太多流量

这里还有很多默认设置,大家自己研究吧,太多我就不一一列举了

3.customize/resource这里一般放的是开机动画、开机音乐、关机动画和壁纸、书签截图等等,如果你想要有书签截图,比如你想设起点手机为书签,那么就删除卡上的.bookmark_thumb1文件夹

再用手机自带浏览器浏览一次起点手机,然后保存书签,然后在.bookmark_thumb1文件家里面找到的那个和你机子上书签截图相同的文件复制出来到system/customize/resource下面就行了

三、system/etc

这里主要是更换apns-conf.xml和gps.conf,还有init.d文件夹下的东西

apns-conf.xml里面放的是apn设置,很多人反应不能够连gprs就是这里没有你的信息

gps.conf很多人反应gps用不上或者慢,其实就是这里出问题了。

用记事本打开gps.conf文件,修改为:

NTP_SERVER=asia.pool.ntp.org

XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin

XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin

XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin

SUPL_HOST=suplcn.sirf.com

SUPL_PORT=7275

init.d这里主要是引导方式之类的,反正这里最好不动,或者使用你使用的内核的作者提供的,如果弄错了就会定在第一屏

四、system\fonts

这里主要是换字体了

DroidSansFallback.ttf中文字体

DroidSans.ttf英文字体

DroidSans-Bold.ttf 加粗的英文字体

五、system/framework

这里是谷歌的系统框架,最好不要动,不然会不稳定、或者直接进不了系统

替换数字电量最好用现成、同系列的

如何整数字电量改天再说吧。

其它系列不要使用

六、system/lib

这里主要是换内核用的,作者一般都是分好了路径的,照着换就行了

一般来说换内核必换的system/lib/modules/bcm4329.ko,这个文件是wifi和蓝牙驱动,不同内核的驱动不同,如果不换wifi和蓝牙只会提示错误

七、system/xbin

这里主要放两个文件

su和busybox,这两个是获得root权限必备的,如果没有,即使在updater-script里面设置了也没用

同时还需要Superuser.apk配合,解压到\system\app\

八、system/build.prop

这个文件嘛,一般是留名用的:

主要改以下几个地方:

1、

ro.product.locale.language=hdpi(或者有的机型是mdpildpi)

ro.product.locale.region=

改成

ro.product.locale.language=zh

ro.product.locale.region=CN

这样开机第一次锁屏的时候就是中文

2.

ro.build.description=

后面改成你想要的,也就是你作品的名字

ro.product.version=

这里也可以改成你作品的名字或者版本号,一般我们留为基于制作的官方系统的驱动版本号

3、

ro.sf.lcd_density=

后面一般为240,CM系列可以改成200,当然会有软件不全屏,带sense的就别改了

4、

ro.ril.def.agps.mode = 2

听说改成0可以加速gps定位省流量

5、

默认铃声ro.config.ringtone=

默认同志ro.config.notification_sound=

默认闹铃ro.config.alarm_alert=

默认电话铃声ro.config.cal_notification=

默认短信铃声ro.config.msg_notification=

改成相应目录下的文件名就行了

比如我要改ro.config.ringtone=,system/media/audio/ringstones下面有一个我喜欢的比如htc.mp3,那我就改成ro.config.ringtone=htc.mp3

比如我要改

ro.config.alarm_alert=,system/media/audio/alarms下面有一个我喜欢的比如Light.mp3,那就改成ro.config.alarm_alert=Light.np3

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码