PALMisLIFE 討論區

標題: Android自訂系統程式與音效 [列印本頁]

作者: czh    時間: 2010-2-25 16:06
標題: Android自訂系統程式與音效
修改前一定要先做好萬全的備份與可還原的方案,以免變磚

Android改系統真是簡單到靠背
已經不像以前Palm/WM/S60
要把ROM挖出來然後用謎的方法去改ROM
還要心驚膽跳的把ROM刷回去
刷的過程還要擔心改的不好讓機器變磚
說真的Android改系統沒有『刷ROM』這回事
因為畢竟是Linux,只要有root就可以整台逛透透
所以只要搞懂檔案結構與作用,要怎麼改隨便你
Android最基本的大門就是adb shell
這是電腦與Android溝通的終端機
雖然Android上裝個command軟體也可以達成
可是有些機種沒鍵盤實在不方便操作
所以還是用adb shell比較方便
一般教學都要你裝SDK然後上網更新才會有adb可以用
可是我又不想寫程式,也不需要模擬器,幹嘛花時間佔空間的裝SDK
所以我就準備了懶人包
之前有看過我的教學應該都用過這個懶人包
最基本指令就是
adb pull [Android端的檔案] [欲放置在pc端的路徑與檔名] #由Android拉檔案回電腦
adb push [pc端的檔案] [欲放置在Android端的路徑與檔名] #由電腦推檔案去Android
adb shell #連接Android
su #取得root權限
mount -o remount,rw -t yaffs2 /dev/block/mtdblock6 /system #讓/system可讀,mtdblock6其實就是ROM mount成system這個資料夾
cat [欲複製的檔案] > [目標路徑與檔名] #cat是顯示檔案內容,加上『>』就是將檔案內容存成另一個檔案(其實就是複製)
cp [欲複製的檔案] [目標路徑與檔名] #複製檔案
cp與cat不一樣的是,如果是Windows編輯的檔案到了Linux格式會有出入,所以建議用cat來取來cp比較沒問題
chmod #設定檔案權限,自己去google使用方法,權限沒設定好有時檔案會沒作用
rm #移除檔案,像台灣根本不可能用的到的motonav就可以用這個來幹掉他
ls、mv、mkdir、rmdir........ #饒了我吧,反正就是Linux,指令完全一樣自己依需求去google找教學
mount -o remount,ro -t yaffs2 /dev/block/mtdblock6 /system #恢復/system不可讀

知道原理後修改就不難了吧
簡單講自訂系統就是『分解、理解、再築構』[洋蔥time]
先登入root取得寫入權限,然後知道要改哪些檔案,改好後恢復權限,最後重新開機
與Windows完全一樣對吧?
不過apk程式的安裝比Windows更簡單
apk不用囉唆的安裝與關聯還有註冊
apk的安裝說穿了就是『複製』這樣而已
所以在商店下載軟體,會發現花時間的都是下載,下載完的瞬間軟體也安裝好了
接下來提示一些東西,聰明的你應該就會自己應用吧?
/system/media/audio/ #底下有四個目錄,功能與名稱相同
/system/app #內建軟體都在這裡,不爽哪些垃圾直接砍掉apk就好(不過砍掉前建議先備份原擋到記憶卡)
想內建哪些好軟體也是apk直接複製進去就好
其他的需求就自己『理解』吧[洋蔥time]

修改前一定要先做好萬全的備份與可還原的方案,以免變磚

[attach]32368[/attach]

作者: czh    時間: 2010-2-25 20:48
本文最後由 czh 於 2010-2-25 21:53 編輯

提供一段我自己整備時所用的指令
adb push su /sdcard/su
adb push busybox /sdcard/busybox
adb push ZhuYinIME.apk /sdcard/ZhuYinIME.apk
adb push Maps.apk /sdcard/Maps.apk
adb push superuser.apk /sdcard/superuser.apk
adb push DroidSansFallback.ttf /sdcard/DroidSansFallback.ttf
adb push build.prop /sdcard/build.prop
adb push media /sdcard/media
adb shell
mount -o remount,rw -t yaffs2 /dev/block/mtdblock6 /system
cd /sdcard/recovery/bin
./nandroid-mobile.sh backup
rm /system/app/Motonav.apk
rm /system/app/AudioEffect.apk
cat /sdcard/su > /system/bin/su
cat /sdcard/busybox > /system/bin/busybox
cat /sdcard/ZhuYinIME.apk > /system/app/ZhuYinIME.apk
cat /sdcard/Maps.apk > /system/app/Maps.apk
cat /sdcard/superuser.apk > /system/app/superuser.apk
cat /sdcard/DroidSansFallback.ttf > /system/fonts/DroidSansFallback.ttf
cat /sdcard/build.prop > /system/build.prop
chmod 04755 /system/bin/su
chmod 04755 /system/bin/busybox
chmod 0644 /system/app/Maps.apk
chmod 0644 /system/app/ZhuYinIME.apk
chmod 0644 /system/app/superuser.apk
chmod 0644 /system/fonts/DroidSansFallback.ttf
chmod 0644 /system/build.prop
rm /system/media/audio/alarms/*
rm /system/media/audio/notifications/*
rm /system/media/audio/ringtones/*
cat /sdcard/media/audio/alarms/Level_Up.ogg > /system/media/audio/alarms/Level_Up.ogg
cat /sdcard/media/audio/alarms/ohaasa.ogg > /system/media/audio/alarms/ohaasa.ogg
cat /sdcard/media/audio/alarms/Quest_Completed.ogg > /system/media/audio/alarms/Quest_Completed.ogg
cat /sdcard/media/audio/notifications/Target_Switch.ogg > /system/media/audio/notifications/Target_Switch.ogg
cat /sdcard/media/audio/ringtones/Wind_Instrument.ogg > /system/media/audio/ringtones/Wind_Instrument.ogg
chmod 0644 /system/media/audio/alarms/Level_Up.ogg
chmod 0644 /system/media/audio/alarms/ohaasa.ogg
chmod 0644 /system/media/audio/alarms/Quest_Completed.ogg
chmod 0644 /system/media/audio/notifications/Target_Switch.ogg
chmod 0644 /system/media/audio/ringtones/Wind_Instrument.ogg
sync
mount -o remount,rw -t yaffs2 /dev/block/mtdblock6 /system
./nandroid-mobile.sh backup
作者: czh    時間: 2010-2-26 14:09
本文最後由 czh 於 2010-2-26 16:09 編輯

今天刪了一些/system/app底下用不到的內建軟體
刪除最簡單用root explorer就可以了
建議刪檔前先把整個目錄複製到記憶卡作備份
或是用之前的教學作個nand備份

MotoCAL.apk #Exchange Calendar,根本用不到
MotoGAL.apk #CompanyDirectory,不知道做啥用的
Stk.apk #sim卡工具,根本不回去用
Motonav.apk #moto導航,除美國地區外其他地區可能一輩子都用不到
LatinIME.apk #內建英文輸入法,當然用注音輸入法把他取代了
LatinImeTutorial.apk #應該是與上面那個有關連吧,當然一起砍了
Browser.apk #當然用海豚瀏覽器來取代他
PersonalPortal.apk #就是Phone Portal,有人覺得很好用,可是當我裝好SwiFTP後就沒用過他了
AlarmClock.apk #我去Market找Better Alarm Clock取代他
AudioEffect.apk #我只聽原音重現的音樂,所以不需要調EQ
WorldClockWidget.apk #Market隨便找都比這個好
MotAccuWeatherWidget.apk #同上
Music.apk #隨便一套都比內建的讚
Gestures.apk #My sign雖然很多人很愛用,可是我記不住太多手勢,還是直接點比較快

砍完記得要先重新開機
再去設定裡的Manage applications把xxx.xxxxxxx.xxxxxxxxx這種程式移除
這樣這些已砍除的程式設定檔才不會佔用空間
作者: jahong    時間: 2010-2-26 15:48
砍完記得要去程式管理員把xxx.xxxxxxx.xxxxxxxxx這種程式移除
czh 發表於 2010-2-26 14:09


可是我沒看到這種xxx.xxxxxxx.xxxxxxxxx的程式欸~

是用內建的程式管理去找嗎?
作者: AlexPro    時間: 2010-2-27 03:16
還是不太懂 mount -o remount,rw -t yaffs2 /dev/block/mtdblock6 /system
和 sync 的意思

是只要進入 su,但是system還是不能讀,只有下了
mount -o remount,rw -t yaffs2 /dev/block/mtdblock6 /system
才可以讀?
作者: czh    時間: 2010-2-27 12:20
su只是取得權限rom還是唯讀
mount -o remount,rw -t yaffs2 /dev/block/mtdblock6 /system
不難理解,就是把mtdblock6 mount到/system為可讀寫
有此可知mtdblock6就是ROM的本體
sync是要確保所有工作都寫入完畢
避免還有工作在快取執行
寫入就緒當然還要把ROM恢復原來的唯讀,避免被亂改
mount -o remount,ro -t yaffs2 /dev/block/mtdblock6 /system
作者: czh    時間: 2010-3-1 13:20
這邊有一篇程式清單
有列出哪些可以砍,哪些不能砍
砍檔前可以先參考一下
作者: necobi    時間: 2010-3-3 01:55
果真root之後的世界是美好的,我還在掙扎.....
作者: 阿輝    時間: 2010-3-3 02:18
root 後光是 nand 備份就值得了
作者: czh    時間: 2010-3-12 20:57
筆記一下今天整備用到的sh

#!/system/bin/sh
mkdir /data/app
rm /system/app/Motonav.apk
rm /system/app/AudioEffect.apk
rm /system/app/MotoCAL.apk
rm /system/app/MotoGAL.apk
rm /system/app/Stk.apk
rm /system/app/Email.apk
rm /system/app/LatinIME.apk
rm /system/app/LatinImeTutorial.apk
rm /system/app/Browser.apk
rm /system/app/PersonalPortal.apk
rm /system/app/QuickOffice.apk
rm /system/app/AlarmClock.apk
rm /system/app/WorldClockWidget.apk
rm /system/app/MotAccuWeatherWidget.apk
rm /system/app/Music.apk
rm /system/app/Gestures.apk
rm /system/media/audio/alarms/*
rm /system/media/audio/notifications/*
rm /system/media/audio/ringtones/*
cp -f /sdcard/c/system/bin/su /system/bin/su
cp -f /sdcard/c/system/bin/busybox /system/bin/busybox
cp -f /sdcard/c/system/build.prop /system/build.prop
cp -f /sdcard/c/system/app/Maps.apk /system/app/Maps.apk
cp -f /sdcard/c/system/app/MessagingProvider.apk /system/app/MessagingProvider.apk
cp -f /sdcard/c/system/app/Mms.apk /system/app/Mms.apk
cp -f /sdcard/c/system/app/Launcher.apk /system/app/Launcher.apk
cp -f /sdcard/c/system/app/superuser.apk /system/app/superuser.apk
cp -f /sdcard/c/system/fonts/DroidSansFallback.ttf /system/fonts/DroidSansFallback.ttf
cp -f /sdcard/c/system/media/bootanimation.zip /system/media/bootanimation.zip
cp -f /sdcard/c/system/media/audio/alarms/Level_Up.ogg /system/media/audio/alarms/Level_Up.ogg
cp -f /sdcard/c/system/media/audio/alarms/ohaasa.ogg /system/media/audio/alarms/ohaasa.ogg
cp -f /sdcard/c/system/media/audio/alarms/Quest_Completed.ogg /system/media/audio/alarms/Quest_Completed.ogg
cp -f /sdcard/c/system/media/audio/notifications/Target_Switch.ogg /system/media/audio/notifications/Target_Switch.ogg
cp -f /sdcard/c/system/media/audio/ringtones/Wind_Instrument.ogg /system/media/audio/ringtones/Wind_Instrument.ogg
cp -f /sdcard/c/data/app/com.androidiani.MarketEnabler.apk /data/app/com.androidiani.MarketEnabler.apk
cp -f /sdcard/c/data/app/com.dataviz.docstogo.apk /data/app/com.dataviz.docstogo.apk
cp -f /sdcard/c/data/app/com.dataviz.docstogoapp.apk /data/app/com.dataviz.docstogoapp.apk
cp -f /sdcard/c/data/app/com.speedsoftware.rootexplorer.apk /data/app/com.speedsoftware.rootexplorer.apk
chmod 04755 /system/bin/su
chmod 04755 /system/bin/busybox
chmod 0644 /system/build.prop
chmod 0644 /system/app/*
chmod 0644 /system/fonts/DroidSansFallback.ttf
chmod 0644 /system/media/bootanimation.zip
chmod 0644 /system/media/audio/alarms/Level_Up.ogg
chmod 0644 /system/media/audio/alarms/ohaasa.ogg
chmod 0644 /system/media/audio/alarms/Quest_Completed.ogg
chmod 0644 /system/media/audio/notifications/Target_Switch.ogg
chmod 0644 /system/media/audio/ringtones/Wind_Instrument.ogg
chmod 0644 /data/app/*
echo "ok!"
作者: 小酒蟲    時間: 2010-3-13 07:25
Android 還是有刷 ROM 這回事啦,不然也不會一堆流派在各自努力,只不過和其它系統相比,自制化的程度更安全。
作者: czh    時間: 2010-3-13 09:55
Milestone因為bootloader被鎖起來所以還沒有ROM可以刷吧
看過很多玩家blog與論壇都在抗議這件事
才會有Milestone被關起來的譏諷圖
不過在沒刷ROM之前就可以達成以前很多很難達成的目的了
作者: czh    時間: 2010-3-19 18:12
用於2.1的整備sh
#!/system/bin/sh
mkdir /data/app
rm /system/app/AlarmClock.apk
rm /system/app/AudioEffect.apk
rm /system/app/Browser.apk
rm /system/app/CertInstaller.apk
rm /system/app/Email.apk
rm /system/app/Facebook.apk
rm /system/app/Gestures.apk
rm /system/app/HelpCenter.apk
rm /system/app/LatinIME.apk
rm /system/app/LatinImeTutorial.apk
rm /system/app/Mot* #沒錯moto的內建程式我都砍光了
rm /system/app/Music.apk
rm /system/app/Maps.apk
rm /system/app/PersonalPortal.apk
rm /system/app/QuickOffice.apk #已經裝了Doc ToGo當然不稀罕這套
rm /system/app/Stk.apk
rm /system/app/VSuiteApp.apk
rm /system/app/WorldClockWidget.apk
rm /system/app/LiveWallpapers.apk #動態桌布很炫沒錯,玩玩就好,常駐開啟會拖垮效能與電力
rm /system/app/LiveWallpapersPicker.apk
rm /system/app/MagicSmokeWallpapers.apk
rm /system/app/VisualizationWallpapers.apk
rm /system/media/audio/alarms/*
rm /system/media/audio/notifications/*
rm /system/media/audio/ringtones/*
cp -f /sdcard/c/system/bin/su /system/bin/su
cp -f /sdcard/c/system/bin/busybox /system/bin/busybox
cp -f /sdcard/c/system/build.prop /system/build.prop
cp -f /sdcard/c/system/fonts/DroidSansFallback.ttf /system/fonts/DroidSansFallback.ttf
cp -f /sdcard/c/system/media/bootanimation.zip /system/media/bootanimation.zip
cp -f /sdcard/c/system/media/audio/alarms/Level_Up.ogg /system/media/audio/alarms/Level_Up.ogg
cp -f /sdcard/c/system/media/audio/alarms/ohaasa.ogg /system/media/audio/alarms/ohaasa.ogg
cp -f /sdcard/c/system/media/audio/alarms/Quest_Completed.ogg /system/media/audio/alarms/Quest_Completed.ogg
cp -f /sdcard/c/system/media/audio/notifications/Target_Switch.ogg /system/media/audio/notifications/Target_Switch.ogg
cp -f /sdcard/c/system/media/audio/ringtones/Wind_Instrument.ogg /system/media/audio/ringtones/Wind_Instrument.ogg
cp -f /sdcard/c/data/app/com.androidiani.MarketEnabler.apk /data/app/com.androidiani.MarketEnabler.apk
cp -f /sdcard/c/data/app/com.dataviz.docstogo.apk /data/app/com.dataviz.docstogo.apk
cp -f /sdcard/c/data/app/com.dataviz.docstogoapp.apk /data/app/com.dataviz.docstogoapp.apk
cp -f /sdcard/c/data/app/com.speedsoftware.rootexplorer.apk /data/app/com.speedsoftware.rootexplorer.apk
chmod 04755 /system/bin/su
chmod 04755 /system/bin/busybox
chmod 0644 /system/build.prop
chmod 0644 /system/app/*
chmod 0644 /system/fonts/DroidSansFallback.ttf
chmod 0644 /system/media/bootanimation.zip
chmod 0644 /system/media/audio/alarms/Level_Up.ogg
chmod 0644 /system/media/audio/alarms/ohaasa.ogg
chmod 0644 /system/media/audio/alarms/Quest_Completed.ogg
chmod 0644 /system/media/audio/notifications/Target_Switch.ogg
chmod 0644 /system/media/audio/ringtones/Wind_Instrument.ogg
chmod 0644 /data/app/*
echo "all ok!"
作者: egegtgtg    時間: 2010-3-23 11:58
在CZH這篇我搭一下順風車
使用Milestone韌體版本2.1的話要注意,
如果要丟鈴聲進去/system/media變成內建的,但是MP3Tag是日文的話,記得要改成英文,
不然會變亂碼,砍也砍不掉
之前使用2.01版本的時候還不會這樣,想說直接從記憶卡倒進去就好了,
結果我只好昨天又整個砍掉重練一次@@

但是同樣的錯誤昨天在神智不清的狀態下,為了要設定內建來電鈴聲又幹了一次@_@
我已經懶得砍掉重練了Orz,看看日後會不會改善或是我找個時間再搞一次吧...囧>
作者: czh    時間: 2010-3-23 12:01
Milestone 2.1讀媒體檔的tag看來有點問題
其他論壇也陸續傳出災情
這也順便讓我們發現Market上的一堆軟體其實都只是界面
解碼都還是用核心內建的
所以不管用哪套撥放器問題都完全一樣




歡迎光臨 PALMisLIFE 討論區 (http://f.pil.tw/) Powered by Discuz! X2.5