Android_ROM制作,精简及移植教程
本教 程主要内容有:Android系统文件夹 结构解析、应用软件说明、定制精简、ROM签名把包等内容。刷机有风险,出问题自负。其实这个教程一早就想写的,但由于时间及本人的懒惰,一直拖着。今晚终于静下心来写好本文,本文有部份内容来自于网络。
速度与华丽,你喜欢那个。是不是想要一个又够速度又华丽的ROM呢?我是一个追求新鲜的人,对于手机的ROM,我又追求稳定、精简、美观、省电。现在Hero ROM有很多,最新的有第三方Android 2.1版本,但这些ROM的制作者都会跟据自已的个人喜欢会增加和增少相应的功能或是界面,但我们往往不喜欢这些ROM的某些小方面,所以随着而来面对的问题就是怎样把这个ROM修改成为一个自已真正需要的ROM呢?以往一直是依靠“大杀器”来解决,但觉得还是过于麻烦,所以寻求办法自己动手修改ROM。于是有了本文。废话少说,进入题。
一、Android系统文件夹结构
一个完整的ROM根目录会有以下几个文件夹及文件:
速度与华丽,你喜欢那个。是不是想要一个又够速度又华丽的ROM呢?我是一个追求新鲜的人,对于手机的ROM,我又追求稳定、精简、美观、省电。现在Hero ROM有很多,最新的有第三方Android 2.1版本,但这些ROM的制作者都会跟据自已的个人喜欢会增加和增少相应的功能或是界面,但我们往往不喜欢这些ROM的某些小方面,所以随着而来面对的问题就是怎样把这个ROM修改成为一个自已真正需要的ROM呢?以往一直是依靠“大杀器”来解决,但觉得还是过于麻烦,所以寻求办法自己动手修改ROM。于是有了本文。废话少说,进入题。
一、Android系统文件夹结构
一个完整的ROM根目录会有以下几个文件夹及文件:
data
META-IN
META-IN
system
boot.img
boot.img
系统目录说明
1. 应用程序安装目录
1) 系统应用程序所在目录
/system/app/*.apk
2)用户安装应用程序所在目录
/data/app/*.apk
3) 注意:
a)在模拟器中,每重启一次,/system/app/下的应用都会被还原,有时/data/app下也会被清除
b)若在/system/app和/data/app下有重名的应用,不一定会启动哪一个,尤其是在adb install杀死正在运行的程序时,有时旧的就会被启动
2.用户数据所在目录
/
1) 系统应用程序所在目录
/system/app/*.apk
2)用户安装应用程序所在目录
/data/app/*.apk
3) 注意:
a)在模拟器中,每重启一次,/system/app/下的应用都会被还原,有时/data/app下也会被清除
b)若在/system/app和/data/app下有重名的应用,不一定会启动哪一个,尤其是在adb install杀死正在运行的程序时,有时旧的就会被启动
2.用户数据所在目录
/
data/data/应用包名/shared_prefs 配置文件
/data/data/应用包名/databases/* 库文件所在目录
3. SD卡对应目录
/sdcard/
/data/data/应用包名/databases/* 库文件所在目录
3. SD卡对应目录
/sdcard/
而我们需要处理的只是两个文件夹里面的内容:
data/app –该文本夹里的文件可以全删,也可以自由添加自已所需安装的应用软件,刷机安装后可以自由删除。
system/app –在这个文件夹下的程序为系统默认的组件,可以看到都是以APK格式结尾的文件,但有些自制的ROM里面还有和APK文件名对应的odex文件。我们主要是针对该文件夹里的文件进行精简,如果有odex文件的,删除APK文件名时同时也删除与其对应的odex文件。
虽然一般定制时只是对以上两个文件夹里的文件做相应的增减,但我们还是一起来了解system相应目录相应文件的用途吧。(rom版本不同里面的APK也会不一样)
\system\app
\system\app\AlarmClock.apk 闹钟
data/app –该文本夹里的文件可以全删,也可以自由添加自已所需安装的应用软件,刷机安装后可以自由删除。
system/app –在这个文件夹下的程序为系统默认的组件,可以看到都是以APK格式结尾的文件,但有些自制的ROM里面还有和APK文件名对应的odex文件。我们主要是针对该文件夹里的文件进行精简,如果有odex文件的,删除APK文件名时同时也删除与其对应的odex文件。
虽然一般定制时只是对以上两个文件夹里的文件做相应的增减,但我们还是一起来了解system相应目录相应文件的用途吧。(rom版本不同里面的APK也会不一样)
\system\app
\system\app\AlarmClock.apk 闹钟
\system\app\Browser.apk 浏览器
\system\app\Bugreport.apk Bug报告
\system\app\Calculator.apk 计算器
\system\app\Calendar.apk 日历
\system\app\CalendarProvider.apk 日历提供
\system\app\Camera.apk 照相机
\system\app\com.amazon.mp3.apk 亚马逊音乐
\system\app\Contacts.apk 联系人
\system\app\DownloadProvider.apk 下载提供
\system\app\DrmProvider.apk DRM数字版权提供
\system\app\Email.apk 客户端
\system\app\FieldTest.apk 测试程序
\system\app\GDataFeedsProvider.apk GoogleData提供
\system\app\Gmail.apk Gmail
\system\app\GmailProvider.apk Gmail提供
\system\app\Bugreport.apk Bug报告
\system\app\Calculator.apk 计算器
\system\app\Calendar.apk 日历
\system\app\CalendarProvider.apk 日历提供
\system\app\Camera.apk 照相机
\system\app\com.amazon.mp3.apk 亚马逊音乐
\system\app\Contacts.apk 联系人
\system\app\DownloadProvider.apk 下载提供
\system\app\DrmProvider.apk DRM数字版权提供
\system\app\Email.apk 客户端
\system\app\FieldTest.apk 测试程序
\system\app\GDataFeedsProvider.apk GoogleData提供
\system\app\Gmail.apk Gmail
\system\app\GmailProvider.apk Gmail提供
\system\app\GoogleApps.apk 谷歌程序包
\system\app\GoogleSearch.apk 搜索工具
\system\app\gtalkservice.apk GTalk服务
\system\app\HTMLViewer.apk HTML查看器
\system\app\HtcTwitter.apk 集成Twitter客户端PEEP
\system\app\IM.apk 即使通讯组件包含MSN、yahoo通
\system\app\ImCredentialProvider.apk
\system\app\ImProvider.apk
\system\app\Launcher.apk 启动加载器
\system\app\HtcNaviPanel.apk 导航软件
\system\app\Maps.apk 电子地图
\system\app\MediaProvider.apk 多媒体播放提供
\system\app\Mms.apk 短信、彩信
\system\app\Music.apk 音乐播放器
\system\app\MyFaves.apk T-Mobile MyFaves程序
\system\app\GoogleSearch.apk 搜索工具
\system\app\gtalkservice.apk GTalk服务
\system\app\HTMLViewer.apk HTML查看器
\system\app\HtcTwitter.apk 集成Twitter客户端PEEP
\system\app\IM.apk 即使通讯组件包含MSN、yahoo通
\system\app\ImCredentialProvider.apk
\system\app\ImProvider.apk
\system\app\Launcher.apk 启动加载器
\system\app\HtcNaviPanel.apk 导航软件
\system\app\Maps.apk 电子地图
\system\app\MediaProvider.apk 多媒体播放提供
\system\app\Mms.apk 短信、彩信
\system\app\Music.apk 音乐播放器
\system\app\MyFaves.apk T-Mobile MyFaves程序
\system\app\NewsReader.apk 新闻阅读器
\system\app\PackageInstaller.apk apk安装程序
\system\app\Phone.apk 电话拨号器
\system\app\Settings.apk 系统设置
\system\app\SettingsProvider.apk 设置提供
\system\app\SetupWizard.apk 设置向导
\system\app\SoundRecorder.apk 录音工具
\system\app\Street.apk 街景地图
\system\app\Sync.apk 同步程序
\system\app\Talk.apk 语音程序
\system\app\TelephonyProvider.apk 电话提供
\system\app\Updater.apk 更新程序
\system\app\VpnServices.apk VPN服务
\system\app\Vending.apk 制造商信息
\system\app\VoiceDialer.apk 语音拨号器
\system\app\PackageInstaller.apk apk安装程序
\system\app\Phone.apk 电话拨号器
\system\app\Settings.apk 系统设置
\system\app\SettingsProvider.apk 设置提供
\system\app\SetupWizard.apk 设置向导
\system\app\SoundRecorder.apk 录音工具
\system\app\Street.apk 街景地图
\system\app\Sync.apk 同步程序
\system\app\Talk.apk 语音程序
\system\app\TelephonyProvider.apk 电话提供
\system\app\Updater.apk 更新程序
\system\app\VpnServices.apk VPN服务
\system\app\Vending.apk 制造商信息
\system\app\VoiceDialer.apk 语音拨号器
\system\app\VoiceSearch.apk 语音搜索
\system\app\YouTube.apk Youtube视频
\system\bin
这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件,Android手机网就主要文件做下简单的分析介绍:
\system\bin\akmd
\system\bin\am
\system\bin\app_process 系统进程
\system\bin\dalvikvm Dalvik虚拟机宿主
\system\bin\dbus-daemon 系统BUS总线监控
\system\bin\debuggerd 调试器
\system\bin\debug_tool 调试工具
\system\bin\dexopt DEX选项
\system\bin\dhcpcd DHCP服务器
\system\bin\dumpstate 状态抓取器
\system\app\YouTube.apk Youtube视频
\system\bin
这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件,Android手机网就主要文件做下简单的分析介绍:
\system\bin\akmd
\system\bin\am
\system\bin\app_process 系统进程
\system\bin\dalvikvm Dalvik虚拟机宿主
\system\bin\dbus-daemon 系统BUS总线监控
\system\bin\debuggerd 调试器
\system\bin\debug_tool 调试工具
\system\bin\dexopt DEX选项
\system\bin\dhcpcd DHCP服务器
\system\bin\dumpstate 状态抓取器
\system\bin\dumpsys 系统抓取器
\system\bin\dvz
\system\bin\fillup
\system\bin\flash_image 闪存映像
\system\bin\hciattach
\system\bin\hcid HCID内核
\system\bin\hostapd
\system\bin\hostapd_cli
\system\bin\htclogkernel
\system\bin\input
\system\bin\installd
\system\bin\itr
\system\bin\linker
\system\bin\logcat Logcat日志打印
\system\bin\logwrapper
\system\bin\dvz
\system\bin\fillup
\system\bin\flash_image 闪存映像
\system\bin\hciattach
\system\bin\hcid HCID内核
\system\bin\hostapd
\system\bin\hostapd_cli
\system\bin\htclogkernel
\system\bin\input
\system\bin\installd
\system\bin\itr
\system\bin\linker
\system\bin\logcat Logcat日志打印
\system\bin\logwrapper
\system\bin\mediaserver
\system\bin\monkey
\system\bin\mountd 存储挂载器
\system\bin\netcfg 网络设置
\system\bin\ping Ping程序
\system\bin\playmp3 MP3播放器
\system\bin\pm 包管理器
\system\bin\qemud QEMU虚拟机
\system\bin\radiooptions 无线选项
\system\bin\rild RIL组件
\system\bin\sdptool
\system\bin\sdutil
\system\bin\service
\system\bin\servicemanager 服务管理器
\system\bin\sh
\system\bin\monkey
\system\bin\mountd 存储挂载器
\system\bin\netcfg 网络设置
\system\bin\ping Ping程序
\system\bin\playmp3 MP3播放器
\system\bin\pm 包管理器
\system\bin\qemud QEMU虚拟机
\system\bin\radiooptions 无线选项
\system\bin\rild RIL组件
\system\bin\sdptool
\system\bin\sdutil
\system\bin\service
\system\bin\servicemanager 服务管理器
\system\bin\sh
\system\bin\ssltest SSL测试
\system\bin\surfaceflinger 触摸感应驱动
\system\bin\svc 服务
\system\bin\system_server
\system\bin\telnetd Telnet组件
\system\bin\toolbox
\system\bin\wlan_loader
\system\bin\wpa_cli
\system\bin\wpa_supplicant
\system\etc
从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。
\system\l APN接入点配置文件
\system\etc\AudioFilter.csv 音频过滤器配置文件
\system\etc\AudioPara4.csv
\system\l 书签数据库
\system\bin\surfaceflinger 触摸感应驱动
\system\bin\svc 服务
\system\bin\system_server
\system\bin\telnetd Telnet组件
\system\bin\toolbox
\system\bin\wlan_loader
\system\bin\wpa_cli
\system\bin\wpa_supplicant
\system\etc
从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。
\system\l APN接入点配置文件
\system\etc\AudioFilter.csv 音频过滤器配置文件
\system\etc\AudioPara4.csv
\system\l 书签数据库
\system\f 总线监视配置文件
\system\etc\dhcpcd
\system\etc\event-log-tags
\system\l 收藏夹
\system\etc\firmware 固件信息
\system\f GPS设置文件
\system\f内核HCID配置文件
\system\etc\hosts 网络DNS缓存
\system\ldfish.sh
\system\etc\location 定位相关
\system\f 存储挂载配置文件
\system\etc\NOTICE.html 提示网页
\system\l 权限许可
\system\f
\system\etc\security
\system\etc\dhcpcd
\system\etc\event-log-tags
\system\l 收藏夹
\system\etc\firmware 固件信息
\system\f GPS设置文件
\system\f内核HCID配置文件
\system\etc\hosts 网络DNS缓存
\system\ldfish.sh
\system\etc\location 定位相关
\system\f 存储挂载配置文件
\system\etc\NOTICE.html 提示网页
\system\l 权限许可
\system\f
\system\etc\security
\system\etc\wifi WLAN相关组件
\system\etc\dhcpcd\dhcpcd-hooks
\system\etc\dhcpcd\dhcpcd-run-hooks
\system\etc\f
\system\etc\dhcpcd\dhcpcd-hooks\01-test
\system\etc\dhcpcd\f
\system\etc\dhcpcd\dhcpcd-hooks\95-configured
\system\etc\firmware\brf6300.bin
\system\etc\location\gps
\system\etc\location\gps\location 定位相关
\system\etc\location\gps\nmea GPS数据解析
\system\etc\location\gps\properties
\system\etc\security\cacerts.bks
\system\etc\security\otacerts.zip OTA下载验证
\system\etc\wifi\Fw1251r1c.bin
\system\etc\dhcpcd\dhcpcd-hooks
\system\etc\dhcpcd\dhcpcd-run-hooks
\system\etc\f
\system\etc\dhcpcd\dhcpcd-hooks\01-test
\system\etc\dhcpcd\f
\system\etc\dhcpcd\dhcpcd-hooks\95-configured
\system\etc\firmware\brf6300.bin
\system\etc\location\gps
\system\etc\location\gps\location 定位相关
\system\etc\location\gps\nmea GPS数据解析
\system\etc\location\gps\properties
\system\etc\security\cacerts.bks
\system\etc\security\otacerts.zip OTA下载验证
\system\etc\wifi\Fw1251r1c.bin
\system\etc\wifi\tiwlan.ini
\system\etc\wifi\f WPA验证组件
\system\fonts
字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库,从T- Mobile G1上可以清楚的看到显示简体中文正常,其中f文件大小
\system\f
\system\f
\system\f
\system\f
\system\f
\system\f
\system\f
\system\f
\system\framework
\system\etc\wifi\f WPA验证组件
\system\fonts
字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库,从T- Mobile G1上可以清楚的看到显示简体中文正常,其中f文件大小
\system\f
\system\f
\system\f
\system\f
\system\f
\system\f
\system\f
\system\f
\system\framework
framework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。
\system\framework\am.jar
\system\framework\am.odex
\system\framework\android.awt.jar AWT库
\system\framework\android.awt.odex
\system\framework\android.policy.jar
\system\framework\android.policy.odex
\system\st.runner.jar
\system\st.runner.odex
\system\alkservice.jar GTalk服务
\system\alkservice.odex
\system\le.android.maps.jar 电子地图库
\system\le.android.maps.odex
\system\framework\core.jar 核心库,启动桌面时首先加载这个
\system\framework\core.odex
\system\framework\am.jar
\system\framework\am.odex
\system\framework\android.awt.jar AWT库
\system\framework\android.awt.odex
\system\framework\android.policy.jar
\system\framework\android.policy.odex
\system\st.runner.jar
\system\st.runner.odex
\system\alkservice.jar GTalk服务
\system\alkservice.odex
\system\le.android.maps.jar 电子地图库
\system\le.android.maps.odex
\system\framework\core.jar 核心库,启动桌面时首先加载这个
\system\framework\core.odex
\system\framework\ext.jar
\system\framework\ext.odex
\system\framework\framework-res.apk
\system\framework\framework-tests.jar
\system\framework\framework-tests.odex
\system\framework\framework.jar
\system\framework\framework.odex
\system\framework\input.jar 输入库
\system\framework\input.odex
\system\framework\itr.jar
\system\framework\itr.odex
\system\framework\monkey.jar
\system\framework\monkey.odex
\system\framework\pm.jar 包管理库
\system\framework\pm.odex
\system\framework\ext.odex
\system\framework\framework-res.apk
\system\framework\framework-tests.jar
\system\framework\framework-tests.odex
\system\framework\framework.jar
\system\framework\framework.odex
\system\framework\input.jar 输入库
\system\framework\input.odex
\system\framework\itr.jar
\system\framework\itr.odex
\system\framework\monkey.jar
\system\framework\monkey.odex
\system\framework\pm.jar 包管理库
\system\framework\pm.odex
\system\framework\services.jar
\system\framework\services.odex
\system\framework\ssltest.jar
\system\framework\ssltest.odex
\system\framework\svc.jar 系统服务
\system\framework\svc.odex
\system\lib
lib目录中存放的主要是系统底层库,如平台运行时库。
\system\lib\libaes.so
\system\lib\libagl.so
\system\lib\libandroid_runtime.so Android运行时库
\system\lib\libandroid_servers.so 系统服务组件
\system\lib\libaudio.so 音频处理
\system\lib\libaudioeq.so EQ均衡器
\system\lib\libaudioflinger.so 音频过滤器
\system\framework\services.odex
\system\framework\ssltest.jar
\system\framework\ssltest.odex
\system\framework\svc.jar 系统服务
\system\framework\svc.odex
\system\lib
lib目录中存放的主要是系统底层库,如平台运行时库。
\system\lib\libaes.so
\system\lib\libagl.so
\system\lib\libandroid_runtime.so Android运行时库
\system\lib\libandroid_servers.so 系统服务组件
\system\lib\libaudio.so 音频处理
\system\lib\libaudioeq.so EQ均衡器
\system\lib\libaudioflinger.so 音频过滤器
\system\lib\libbluetooth.so 蓝牙组件
\system\lib\libc.so
\system\lib\libcamera.so 超相机组件
\system\lib\libcameraservice.so
\system\lib\libcorecg.so
\system\lib\libcrypto.so 加密组件
\system\lib\libctest.so
\system\lib\libcutils.so
\system\lib\libdbus.so
\system\lib\libdl.so
\system\lib\libdrm1.so DRM解析库
\system\lib\libdrm1_jni.so
\system\lib\libdvm.so
\system\lib\libexif.so
\system\lib\libexpat.so
\system\lib\libc.so
\system\lib\libcamera.so 超相机组件
\system\lib\libcameraservice.so
\system\lib\libcorecg.so
\system\lib\libcrypto.so 加密组件
\system\lib\libctest.so
\system\lib\libcutils.so
\system\lib\libdbus.so
\system\lib\libdl.so
\system\lib\libdrm1.so DRM解析库
\system\lib\libdrm1_jni.so
\system\lib\libdvm.so
\system\lib\libexif.so
\system\lib\libexpat.so
\system\lib\libFFTEm.so
\system\lib\libGLES_CM.so
\system\lib\libgps.so
\system\lib\libhardware.so
\system\lib\libhgl.so
\system\lib\libhtc_ril.so
\system\lib\libicudata.so
\system\lib\libicui18n.so
\system\lib\libicuuc.so
\system\lib\liblog.so
\system\lib\libm.so
\system\lib\libmedia.so
\system\lib\libmediaplayerservice.so
\system\lib\libmedia_jni.so
\system\lib\libnativehelper.so
\system\lib\libGLES_CM.so
\system\lib\libgps.so
\system\lib\libhardware.so
\system\lib\libhgl.so
\system\lib\libhtc_ril.so
\system\lib\libicudata.so
\system\lib\libicui18n.so
\system\lib\libicuuc.so
\system\lib\liblog.so
\system\lib\libm.so
\system\lib\libmedia.so
\system\lib\libmediaplayerservice.so
\system\lib\libmedia_jni.so
\system\lib\libnativehelper.so
\system\lib\libnetutils.so
\system\lib\libOmxCore.so
\system\lib\libOmxH264Dec.so
\system\lib\libpixelflinger.so
\system\lib\libpvasf.so
\system\lib\libpvasfreg.so
\system\lib\libpvauthor.so
\system\lib\libpvcommon.so
\system\lib\libpvdownload.so
\system\lib\libpvdownloadreg.so
\system\lib\libpvmp4.so
\system\lib\libpvmp4reg.so
\system\lib\libpvnet_support.so
\system\lib\libpvplayer.so
\system\lib\libpvrtsp.so
\system\lib\libOmxCore.so
\system\lib\libOmxH264Dec.so
\system\lib\libpixelflinger.so
\system\lib\libpvasf.so
\system\lib\libpvasfreg.so
\system\lib\libpvauthor.so
\system\lib\libpvcommon.so
\system\lib\libpvdownload.so
\system\lib\libpvdownloadreg.so
\system\lib\libpvmp4.so
\system\lib\libpvmp4reg.so
\system\lib\libpvnet_support.so
\system\lib\libpvplayer.so
\system\lib\libpvrtsp.so
\system\lib\libpvrtspreg.so
\system\lib\libqcamera.so
\system\lib\libreference-ril.so
\system\lib\libril.so
\system\lib\librpc.so
\system\lib\libsgl.so
\system\lib\libsonivox.so
\system\lib\libsoundpool.so
\system\lib\libsqlite.so
\system\lib\libssl.so
\system\lib\libstdc++.so
\system\lib\libsurfaceflinger.so
\system\lib\libsystem_server.so
\system\lib\libthread_db.so
\system\lib\libUAPI_jni.so
\system\lib\libqcamera.so
\system\lib\libreference-ril.so
\system\lib\libril.so
\system\lib\librpc.so
\system\lib\libsgl.so
\system\lib\libsonivox.so
\system\lib\libsoundpool.so
\system\lib\libsqlite.so
\system\lib\libssl.so
\system\lib\libstdc++.so
\system\lib\libsurfaceflinger.so
\system\lib\libsystem_server.so
\system\lib\libthread_db.so
\system\lib\libUAPI_jni.so
\system\lib\libui.so
\system\lib\libutils.so
\system\lib\libvorbisidec.so
\system\lib\libwbxml.so
\system\lib\libwbxml_jni.so
\system\lib\libwebcore.so
\system\lib\libwpa_client.so
\system\lib\libxml2wbxml.so
\system\lib\libz.so
\system\lib\modules
\system\lib\modules\wlan.ko
\system\media
铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音
\system\media\audio
\system\media\audio\alarms 闹铃音
\system\lib\libutils.so
\system\lib\libvorbisidec.so
\system\lib\libwbxml.so
\system\lib\libwbxml_jni.so
\system\lib\libwebcore.so
\system\lib\libwpa_client.so
\system\lib\libxml2wbxml.so
\system\lib\libz.so
\system\lib\modules
\system\lib\modules\wlan.ko
\system\media
铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音
\system\media\audio
\system\media\audio\alarms 闹铃音
\system\media\audio\notifications 提示音
\system\media\audio\ringtones 铃声
\system\media\audio\ui 界面操作事件音
\system\media\audio\alarms\Alarm_
\system\media\audio\alarms\Alarm_
\system\media\audio\alarms\Alarm_
\system\media\audio\alarms\
\system\media\audio\alarms\
\system\media\audio\alarms\Alarm_
\system\media\audio\notifications\Beat_
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\notifications\
\system\media\audio\notifications\F1_
\system\media\audio\ringtones 铃声
\system\media\audio\ui 界面操作事件音
\system\media\audio\alarms\Alarm_
\system\media\audio\alarms\Alarm_
\system\media\audio\alarms\Alarm_
\system\media\audio\alarms\
\system\media\audio\alarms\
\system\media\audio\alarms\Alarm_
\system\media\audio\notifications\Beat_
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\notifications\
\system\media\audio\notifications\F1_
\system\media\audio\notifications\F1_
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\ringtones\Ring_
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\ringtones\Ring_
\system\media\audio\ringtones\Ring_
\system\media\audio\ringtones\Ring_
\system\media\audio\ringtones\Ring_
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\ui\
\system\sounds
默认的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件。
\system\sounds\test.mid
\system\media\audio\ringtones\Ring_
\system\media\audio\ringtones\Ring_
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\
\system\media\audio\ui\
\system\sounds
默认的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件。
\system\sounds\test.mid
\system\usr
用户文件夹,包含共享、键盘布局、时间区域文件等。
\system\usr\keychars
\system\usr\keylayout
\system\usr\share
\system\usr\srec
\system\usr\keychars\qwerty.kcm.bin
\system\usr\keychars\qwerty2.kcm.bin
\system\usr\keychars\trout-keypad-qwertz.kcm.bin
\system\usr\keychars\trout-keypad-v2.kcm.bin
\system\usr\keychars\trout-keypad-v3.kcm.bin
\system\usr\keychars\trout-keypad.kcm.bin
\system\usr\keylayout\h2w_headset.kl
\system\usr\keylayout\qwerty.kl
\system\usr\keylayout\trout-keypad-qwertz.kl
用户文件夹,包含共享、键盘布局、时间区域文件等。
\system\usr\keychars
\system\usr\keylayout
\system\usr\share
\system\usr\srec
\system\usr\keychars\qwerty.kcm.bin
\system\usr\keychars\qwerty2.kcm.bin
\system\usr\keychars\trout-keypad-qwertz.kcm.bin
\system\usr\keychars\trout-keypad-v2.kcm.bin
\system\usr\keychars\trout-keypad-v3.kcm.bin
\system\usr\keychars\trout-keypad.kcm.bin
\system\usr\keylayout\h2w_headset.kl
\system\usr\keylayout\qwerty.kl
\system\usr\keylayout\trout-keypad-qwertz.kl
\system\usr\keylayout\trout-keypad-v2.kl
\system\usr\keylayout\trout-keypad-v3.kl
\system\usr\keylayout\trout-keypad.kl
\system\usr\share\bsk
\system\usr\share\zoneinfo
\system\usr\share\bsk\V_FD_speed_101.bsk
\system\usr\share\bsk\V_FD_std_101.bsk
\system\usr\share\zoneinfo\zoneinfo.dat
\system\usr\share\zoneinfo\zoneinfo.idx
\system\usr\srec\config
\system\usr\srec\config\en.us
\system\usr\srec\config\en.us\baseline.par
\system\usr\srec\config\en.us\baseline11k.par
\system\usr\srec\config\en.us\baseline8k.par
\system\usr\srec\config\en.us\dictionary
\system\usr\keylayout\trout-keypad-v3.kl
\system\usr\keylayout\trout-keypad.kl
\system\usr\share\bsk
\system\usr\share\zoneinfo
\system\usr\share\bsk\V_FD_speed_101.bsk
\system\usr\share\bsk\V_FD_std_101.bsk
\system\usr\share\zoneinfo\zoneinfo.dat
\system\usr\share\zoneinfo\zoneinfo.idx
\system\usr\srec\config
\system\usr\srec\config\en.us
\system\usr\srec\config\en.us\baseline.par
\system\usr\srec\config\en.us\baseline11k.par
\system\usr\srec\config\en.us\baseline8k.par
\system\usr\srec\config\en.us\dictionary
\system\usr\srec\config\en.us\g2p
\system\usr\srec\config\en.us\grammars
\system\usr\srec\config\en.us\models
\system\usr\srec\config\en.us\dictionary\basic.ok
\system\usr\srec\config\en.us\dictionary\cmu6plus.ok.zip
\system\usr\srec\config\en.us\dictionary\enroll.ok
\system\usr\srec\config\en.us\g2p\en-US-ttp.data
\system\usr\srec\config\en.us\grammars\VoiceDialer.g2g
\system\usr\srec\config\en.us\models\generic.swiarb
\system\usr\srec\config\en.us\models\generic11.lda
\system\usr\srec\config\en.us\models\generic11_f.swimdl
\system\usr\srec\config\en.us\models\generic11_m.swimdl
\system\usr\srec\config\en.us\models\generic8.lda
\system\usr\srec\config\en.us\models\generic8_f.swimdl
\system\usr\srec\config\en.us\models\generic8_m.swimdl
\system\usr\srec\config\en.us\grammars
\system\usr\srec\config\en.us\models
\system\usr\srec\config\en.us\dictionary\basic.ok
\system\usr\srec\config\en.us\dictionary\cmu6plus.ok.zip
\system\usr\srec\config\en.us\dictionary\enroll.ok
\system\usr\srec\config\en.us\g2p\en-US-ttp.data
\system\usr\srec\config\en.us\grammars\VoiceDialer.g2g
\system\usr\srec\config\en.us\models\generic.swiarb
\system\usr\srec\config\en.us\models\generic11.lda
\system\usr\srec\config\en.us\models\generic11_f.swimdl
\system\usr\srec\config\en.us\models\generic11_m.swimdl
\system\usr\srec\config\en.us\models\generic8.lda
\system\usr\srec\config\en.us\models\generic8_f.swimdl
\system\usr\srec\config\en.us\models\generic8_m.swimdl
OK,了解Android系统文件夹结构和相应文件的作用后,我们进行下一步真正定制工作。
二、定制简单流程:
1、下载相应的ROM
2、下载签名工具,并且解压。,下载请到这:[url=disk/file/4903938]apktool打包签名.rar[/url]
二、定制简单流程:
1、下载相应的ROM
2、下载签名工具,并且解压。,下载请到这:[url=disk/file/4903938]apktool打包签名.rar[/url]
3、把ROM内的所有文件用WinZip或是WinRAR解压到某一文件夹,为教程容易明白,我将这文件夹在这里起名为“NewsROM”,你自已喜欢怎样起名都无所谓。
4、进入NewsROM文件夹,再进入dataapp目录,看这里是否有你所需的程序,不需要的请删除。你还可以添加你需要的默认安装软件。如:搜狗输入法,只需要把SogouIme.apk文件直接拖放到压缩包dataapp目录内即可。
5、进入NewsROM文件夹,再进入systemapp删除你不想要的组件、或是添加你需要的组件。由于有一些组件与其它组件是有依赖的,所以删除时请注意。但也不要怕,如果你删除的组件不对,刷机时最多是无法进入系统,你用完整ROM重新刷一次既可。一般不会变成砖的。
6、删除、添加软件完毕,然后把 ROM 文件夹(NewsROM)拖动到APKMake/APKMake.b
4、进入NewsROM文件夹,再进入dataapp目录,看这里是否有你所需的程序,不需要的请删除。你还可以添加你需要的默认安装软件。如:搜狗输入法,只需要把SogouIme.apk文件直接拖放到压缩包dataapp目录内即可。
5、进入NewsROM文件夹,再进入systemapp删除你不想要的组件、或是添加你需要的组件。由于有一些组件与其它组件是有依赖的,所以删除时请注意。但也不要怕,如果你删除的组件不对,刷机时最多是无法进入系统,你用完整ROM重新刷一次既可。一般不会变成砖的。
6、删除、添加软件完毕,然后把 ROM 文件夹(NewsROM)拖动到APKMake/APKMake.b
at 即可(重新打包、自动签名)。在APKMake目录里打包签名完成后自动会生成NewsROM.zip(刚才文件夹起名不同,这里生成文件名也不同),这个就是我们已精简的ROM了。
三、刷ROM
请如果 Recovery 已经准备好。请按严格安装以下步骤操作刷入 ROM:
1. 把 ROM 文件复制到 SD 卡。
2. 关机,然后按住 Home(小房子)启动手机,进入 Recovery 模式。
3. WIPE。
4. 在 Recovery 中选择正确的 ROM 文件(ZIP)刷入。
4. 重新启动即可。
四、定制注意事项
1、细心、细心、细心
2、为安全起见,建议只对data/app和system/app这两个文件夹内的文件做删除、添加。
3、不知或是不太清楚要删除的文件是干啥的,那请保留不要删除。
4、本文中的Android系统文件夹结构可能比较旧,如果碰到不知该文件是干什么的,建议搜
三、刷ROM
请如果 Recovery 已经准备好。请按严格安装以下步骤操作刷入 ROM:
1. 把 ROM 文件复制到 SD 卡。
2. 关机,然后按住 Home(小房子)启动手机,进入 Recovery 模式。
3. WIPE。
4. 在 Recovery 中选择正确的 ROM 文件(ZIP)刷入。
4. 重新启动即可。
四、定制注意事项
1、细心、细心、细心
2、为安全起见,建议只对data/app和system/app这两个文件夹内的文件做删除、添加。
3、不知或是不太清楚要删除的文件是干啥的,那请保留不要删除。
4、本文中的Android系统文件夹结构可能比较旧,如果碰到不知该文件是干什么的,建议搜
索一下答案。
4、按照本教程来定制ROM,如果在定制过程自已失误删除相应的软件,那造成的后果最多也是无法进入系统,重新刷一个完整的ROM一般解决问题。
还是那句话:刷机有风险,出问题自负特效文件名称.xml
更多教程miui的移植.doc:[url=disk/file/4904014]miui的移植.doc[/url]
4、按照本教程来定制ROM,如果在定制过程自已失误删除相应的软件,那造成的后果最多也是无法进入系统,重新刷一个完整的ROM一般解决问题。
还是那句话:刷机有风险,出问题自负特效文件名称.xml
更多教程miui的移植.doc:[url=disk/file/4904014]miui的移植.doc[/url]
[url=disk/file/4904013]此教程仅介绍如何移植MIUI到MT4G.doc[/url]
disk/shared/folder_917317_8696eddf/
其实移植并不难,主要看你有没有耐心。比如我拿MOTO XT701来举例
这里以目前CM7系列2.3.7版本系统爲基础,其他系统略有不同。
要移植,就要了解系统的结构和打包解包:
打包很容易,只需要制作成ZIP格式的压缩包就行了,里面包含2个文件夹和1个boot.img文件,boot.img是内核,没有内核的系统是不能运行的,另外两个文件夹一个是system,也就是Android系统所在地,另一个是META-INF,这里一般存放是刷机脚本,我们移植一般需要
这里以目前CM7系列2.3.7版本系统爲基础,其他系统略有不同。
要移植,就要了解系统的结构和打包解包:
打包很容易,只需要制作成ZIP格式的压缩包就行了,里面包含2个文件夹和1个boot.img文件,boot.img是内核,没有内核的系统是不能运行的,另外两个文件夹一个是system,也就是Android系统所在地,另一个是META-INF,这里一般存放是刷机脚本,我们移植一般需要
改的就是system文件夹里的内容。
解包就是解压缩。
首先说结构,system下有:
App文件夹(存放内置软件的地方,每个软件都有自己的名字标注着,很容易识别,在移植上除USB.apk必须用咱们自己的版本以外,其他可以用同分辨率机型的APP直接替换)
Bin文件夹(本文件夹一般存放的是开机运行的脚本和一些系统必备代码,一般移植出了问题不能开机就是这里的问题,一般我们用702的或者720的ROM里的,注意除了NETD需要用701的外,其他也可以直接用702或者720ROM的,不过一般系统升级不会修改这里,在移植的时候,要删除2nd-init以及所有.sh脚本文件,这些对701是没有效果的,如果电池显示?,那么可以通过替换battd文件来修複)
Etc文件夹(本文件夹里存放着这种配置文件,包括WIFI,蓝牙和基带{\etc\motorola\bp_nvm_default}配置文件,A-GPS的文件和Hosts文件也在这里,l可以控制录像质量,cameraCalFileDef5M.bin与cameraCalFileDef8M.bin是照相的数据库文件,都可以修改,子文件夹init.d文件夹下可以写入自己的开机脚本,来实现一些程序或者脚本开机啓动,如果想要执行某模块,可以添加一个文件,不要有后缀名,
解包就是解压缩。
首先说结构,system下有:
App文件夹(存放内置软件的地方,每个软件都有自己的名字标注着,很容易识别,在移植上除USB.apk必须用咱们自己的版本以外,其他可以用同分辨率机型的APP直接替换)
Bin文件夹(本文件夹一般存放的是开机运行的脚本和一些系统必备代码,一般移植出了问题不能开机就是这里的问题,一般我们用702的或者720的ROM里的,注意除了NETD需要用701的外,其他也可以直接用702或者720ROM的,不过一般系统升级不会修改这里,在移植的时候,要删除2nd-init以及所有.sh脚本文件,这些对701是没有效果的,如果电池显示?,那么可以通过替换battd文件来修複)
Etc文件夹(本文件夹里存放着这种配置文件,包括WIFI,蓝牙和基带{\etc\motorola\bp_nvm_default}配置文件,A-GPS的文件和Hosts文件也在这里,l可以控制录像质量,cameraCalFileDef5M.bin与cameraCalFileDef8M.bin是照相的数据库文件,都可以修改,子文件夹init.d文件夹下可以写入自己的开机脚本,来实现一些程序或者脚本开机啓动,如果想要执行某模块,可以添加一个文件,不要有后缀名,
格式爲00aaa 00是执行序号,系统开机时会按顺序执行,aaa是爲了区别每个脚本的名称,可以随便写)
Font文件夹(字体文件夹,没什么好解释的,你可以替换爲你喜欢的字体)
Framework文件夹(系统框架结构文件目录,这个目录下是系统服务和系统界面的所在地,一般不可以单独替换,要移植的话必须全部替换,不然会卡M,framework-res.apk文件就是系统语言,界面的所在文件,修改他就可以直接修改系统界面,framework-res.apk必须与app文件夹中systemui.apk配套,不然开机会出现状态栏FC,不同版本不可以乱用,比如CM7.1.0.5不能用CM7.1.0.4的文件)
Lib文件夹(本文件夹是系统所需要用到的驱动,库文件的所在,如果某程序FC或者无法正常运转,可能是这里的问题,我把我知道的一些文件的用途说一下:
***Lib/dsp文件夹 DSP驱动所在,一般不需要改
***lib/egl 显示芯片驱动,一般不需要改
***libaudio.so 话筒及音频驱动 必须用701的
***libaudioflinger.so 音频附属驱动 必须用701的
***libbridge.so 相机方面
Font文件夹(字体文件夹,没什么好解释的,你可以替换爲你喜欢的字体)
Framework文件夹(系统框架结构文件目录,这个目录下是系统服务和系统界面的所在地,一般不可以单独替换,要移植的话必须全部替换,不然会卡M,framework-res.apk文件就是系统语言,界面的所在文件,修改他就可以直接修改系统界面,framework-res.apk必须与app文件夹中systemui.apk配套,不然开机会出现状态栏FC,不同版本不可以乱用,比如CM7.1.0.5不能用CM7.1.0.4的文件)
Lib文件夹(本文件夹是系统所需要用到的驱动,库文件的所在,如果某程序FC或者无法正常运转,可能是这里的问题,我把我知道的一些文件的用途说一下:
***Lib/dsp文件夹 DSP驱动所在,一般不需要改
***lib/egl 显示芯片驱动,一般不需要改
***libaudio.so 话筒及音频驱动 必须用701的
***libaudioflinger.so 音频附属驱动 必须用701的
***libbridge.so 相机方面
***libbattd.so 电池驱动
***libcamera.so 相机驱动 必须用701的
***libcameraservice.so 相机服务驱动
***libfmradio.so FM驱动
***libHPImgApi.so 图片接口驱动 必须用701的
***libLCML.so 未知驱动 必须用701的
***liboemcamera.so 相机驱动 必须用701的
***libOMX.TI.JPEG.Encoder.so 照片编码器 必须用701的 否则照片黑
***libOMX.TI.AAC.decode.so 此类型的都是编码器和解码器驱动(多媒体)
除上述红文件必须用701外,其他文件可以直接用702或者720的。
Media文件夹(铃声及开机动画)
TTS文件夹(文字转语音文件夹)
Usr文件夹(键盘文件与各类数据库)
Xbin文件夹(系统工具文件夹)
Build.prop文件(系统参数文件,修改这里可以调节系统部分参数与性能)
***libcamera.so 相机驱动 必须用701的
***libcameraservice.so 相机服务驱动
***libfmradio.so FM驱动
***libHPImgApi.so 图片接口驱动 必须用701的
***libLCML.so 未知驱动 必须用701的
***liboemcamera.so 相机驱动 必须用701的
***libOMX.TI.JPEG.Encoder.so 照片编码器 必须用701的 否则照片黑
***libOMX.TI.AAC.decode.so 此类型的都是编码器和解码器驱动(多媒体)
除上述红文件必须用701外,其他文件可以直接用702或者720的。
Media文件夹(铃声及开机动画)
TTS文件夹(文字转语音文件夹)
Usr文件夹(键盘文件与各类数据库)
Xbin文件夹(系统工具文件夹)
Build.prop文件(系统参数文件,修改这里可以调节系统部分参数与性能)
如:默认虚拟机大小,铃声延迟,系统版本等
一般来说只要遵循规律,由少至多移植,不会出现什么问题,出现问题就从头开始,多积累经验,慢慢就会了。
一般来说只要遵循规律,由少至多移植,不会出现什么问题,出现问题就从头开始,多积累经验,慢慢就会了。
Since there is no exact formula to porting v4, at least not one that works across all devices, I'm going to use specific devices as examples to give you a feel for the steps required to port your device. I'm starting off with the Nexus One since it was the easiest device to port from the ones I own. So let's get started.
Gather your tools
First thing you need to do, if you haven't done so already, is get the tools needed to get the job done. Lucky for you I've already covered that in this Getting Started guide.
MIUI v4 Base ROM
Gather your tools
First thing you need to do, if you haven't done so already, is get the tools needed to get the job done. Lucky for you I've already covered that in this Getting Started guide.
MIUI v4 Base ROM
Next thing you are going to need is a MIUI v4 ROM to use as a base. As more devices are ported over, your choice of bases is going to increase as well. A good rule of thumb is to pick a device that best matches the one you are working on. You will want to do some research to see which ones match the closest. I try to find ones that match the processor as I have had less issues going this route. Since I did not have the luxury of choosing a device that matched well, I used the only one available at the time which was the official MIUI port of the Nexus S, aka crespo.
AOSP Based ICS ROM
You are going to need some device specific files and to get those you will need to have an ICS based port for your device. Without this you are not going to have much luck getting v4 ported over. For the nexus one, I have been using the ICS port done by the Evervolv team. These guys have been busting their asses to get ICS running decently on the Nexus One's old hardware and they have done a hell of a job.
AOSP Based ICS ROM
You are going to need some device specific files and to get those you will need to have an ICS based port for your device. Without this you are not going to have much luck getting v4 ported over. For the nexus one, I have been using the ICS port done by the Evervolv team. These guys have been busting their asses to get ICS running decently on the Nexus One's old hardware and they have done a hell of a job.
Now that I've got that all out of the way, let's start having some fun! First we need to setup a folder to work out of and get our base ROM and ICS ROM extracted.
1. Create a working folder for your device. In my case I created one called passion.
2. Create a folder named miui and extract the MIUI base ROM you are using.
3. Create a folder named ics and extract the AOSP based ICS ROM for your device.
It is now time to get started with the actual porting of v4. For this we need to copy some folders and files from the AOSP ROM folder over to the MIUI folder. Let's start out with a simple list.
1. META-INF (entire folder)
2. boot.img
That's the easy stuff, so now let's get to the more complicated parts where we need to be a bit more selective about what to copy over. We are going to be copying files and folders from the system of the AOSP ROM. I'll start in alphabetical order for the folders, starting with app and ending with xbin. This is where using something like Beyond Compare will come in handy so if you haven't downloaded and installed it already, do so now.
app
Leave this one alone安卓虚拟机软件下载
bin
Copy everything from this folder except logcat, logwrapper and su
etc
Delete the following folders from MIUI's etc and replace them with the ones found in the AOSP ROM.
Delete the following folders from MIUI's etc and replace them with the ones found in the AOSP ROM.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论