电脑装配网

安卓rom包制作教程(安卓系统ROM DIY详细步骤详述)

 人阅读 | 作者奔跑的小羊 | 时间:2023-03-24 17:23

想要自己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


文章标签:

本文链接:『转载请注明出处』