上篇文章讲的是 /system/customize/ACC
下的修改,这篇文章主要是 /system/customize/CID
下的。
CID 目录下也是一个名为 default.xml
的文件,一般修改不多,主要是系统语言的设置。下面直接讲重点。
PS:部分地区 RUU 的 ACC、CID 目录下会有 default.xml
以外的 XML 文件,名字都是不同地区的 CID,比如 HTC__001.xml
,系统会根据手机 CID 码(此 CID 非本篇提到的 CID 配置目录)匹配,如果匹配上就读取对应的 XML 文件,如果没有就读取 default.xml
。一般做第三方 ROM 会考虑删除其他 XML 文件,只留 default.xml
。
系统可选语言配置
搜索 <module name="locale">
,找到类似于下面的一段代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| <module name="locale"> <function> <set name="single"> <item name="total_list">ar_US;bg_US;cs_US;da_US;de_US;el_US;en_US;es_US;et_US;fa_US;fi_US;fr_US;hr_US;hu_US;in_US;it_US;iw_US;ja_US;kk_US;ko_US;lt_US;lv_US;nb_US;nl_US;pl_US;pt_US;ro_US;ru_US;sk_US;sl_US;sr_US;sv_US;th_US;tr_US;uk_US;vi_US;zh_CN;zh_TW;</item> <item type="boolean" name="ar_US">yes</item> <item type="boolean" name="bg_US">yes</item> <item type="boolean" name="cs_US">yes</item> <item type="boolean" name="da_US">yes</item> <item type="boolean" name="de_US">yes</item> <item type="boolean" name="el_US">yes</item> <item type="boolean" name="en_US">yes</item> <item type="boolean" name="es_US">yes</item> <item type="boolean" name="et_US">yes</item> <item type="boolean" name="fa_US">yes</item> <item type="boolean" name="fi_US">yes</item> <item type="boolean" name="fr_US">yes</item> <item type="boolean" name="hr_US">yes</item> <item type="boolean" name="hu_US">yes</item> <item type="boolean" name="in_US">yes</item> <item type="boolean" name="it_US">yes</item> <item type="boolean" name="iw_US">yes</item> <item type="boolean" name="ja_US">yes</item> <item type="boolean" name="kk_US">yes</item> <item type="boolean" name="ko_US">yes</item> <item type="boolean" name="lt_US">yes</item> <item type="boolean" name="lv_US">yes</item> <item type="boolean" name="nb_US">yes</item> <item type="boolean" name="nl_US">yes</item> <item type="boolean" name="pl_US">yes</item> <item type="boolean" name="pt_US">yes</item> <item type="boolean" name="ro_US">yes</item> <item type="boolean" name="ru_US">yes</item> <item type="boolean" name="sk_US">yes</item> <item type="boolean" name="sl_US">yes</item> <item type="boolean" name="sr_US">yes</item> <item type="boolean" name="sv_US">yes</item> <item type="boolean" name="th_US">yes</item> <item type="boolean" name="tr_US">yes</item> <item type="boolean" name="uk_US">yes</item> <item type="boolean" name="vi_US">yes</item> <item type="boolean" name="zh_CN">yes</item> <item type="boolean" name="zh_TW">yes</item> </set> </function> </module>
|
这一段就是用来配置系统可选语言的。其中 total_list
的值为所有语言,不同语言之间用 ;
隔开。接来下数行就列出这些语言。
一般我做 ROM 只保留简体中文、繁体中文和英文,所以一般配置如下:
1 2 3 4 5 6 7 8 9 10
| <module name="locale"> <function> <set name="single"> <item name="total_list">en_US;zh_CN;zh_TW;</item> <item type="boolean" name="en_US">yes</item> <item type="boolean" name="zh_CN">yes</item> <item type="boolean" name="zh_TW">yes</item> </set> </function> </module>
|
当然,这个因人而异,你也可以把所有语言都留着。不过这里的配置仅仅是提供设置中可选的语言,具体显示还得依赖各个 apk,如果 apk 本身没有这个语言支持,则显示默认语言。
强制软件版本信息显示
搜索 <module name="locale">
,找到类似于下面的一段代码:
1 2 3 4 5 6 7
| <module name="deviceData1"> <function> <set name="single"> <item name="sw_number">NA</item> </set> </function> </module>
|
如果 sw_number
值为 NA
,则设置——关于——软件信息——软件版本显示的是 build.prop
中的值(具体后面文章会讲),如果不为 NA
,则会强制显示为该值。强制显示是指,比如这里设为 NTFLC ROM 1.0,则下次不清数据刷值为 NTFLC ROM 2.0 的 ROM,设置里还是显示 NTFLC ROM 1.0。只有清除数据才会显示为新值。一般,国行官方系统会修改这里的值,比如 M9 国行联通版就设置其为 1.0.0.M9w。
一般还是建议将 ROM 版本信息写在 build.prop
中,否则用户不清数据升级到新版本,设置里还显示老版本号,会以为自己没升级成功。
默认允许安装未知源应用
搜索 SettingsProvider
,找到类似于下面的一段代码:
1 2 3 4 5 6 7 8 9 10
| <category name="SettingsProvider"> <module name="res"> <function name="values"> <set name="single"> <item name="def_htc_mobile_network_on">true</item> <item name="def_2g_on">3</item> </set> </function> </module> </category>
|
在
1 2 3
| <set name="single"> ... </set>
|
之间添加:
1
| <item name="def_install_non_market_apps">1</item>
|
加上此项后,设置——安全——未知源默认勾选,这样安装非 Google Play 应用就不会提示去设置允许未知源了。