[ROM][09/03] Desire專用RevolutioN (Sense 2.1 + Sense 3.0)


qwaszxcc wrote:
核心以更新 snq ...(恕刪)


建議要裝一套CPU設定的軟體, (Ex:SetCPU 或 tasker)

因為此ROM原先安裝Daemonon Controller, 由於功能太過陽春, 跟放Script(賢大的ROM)能作的事沒兩樣. 已經被我移除掉, 所以如果你不另外安裝script或是CPU設定的軟體, 會跟預期想像的差很多.
幾乎大家都裝SetCPU, 所以這部份留給大家自己安裝.

賢大的ROM是放script, 只有設置醒來和睡下去兩個工作狀態. 所以基本上都會動作, 但是要像我一樣, 在來去電時, 還有接上USB充電要跑到不同的工作狀態, script和Daemonon Controller是絕對作不到的.

放script有script的好處, 自己裝app也有他的好處, 但是相反的每個都有他的缺點, Daemonon Controller的缺點大於優點, 所以我將之刪除, 由各位安裝完ROM後, 選擇自己想要安裝的設定CPU方式.

基本上不管賢大的ROM(Android 2.2)或是HTC官方的ROM(Android 2.3.3)都沒有Smartass V2這個選項.
但是Smartass V2工作模式比之前的Samrtass和OnDemand好太多了.
請教一下如果要自己新增系統App(例如名字是x.apk)的刷機檔該怎麼製作?
我目前是把檔案擺在/system/sd/app_s/內,利用Root Explorer將x.apk link至/system/app

那請問updater-script應該要怎麼寫才能有相同效果呢?
P.S. 下面這兩個語法都分別試過了,沒有效果
symlink("/sd-ext/app_s/x.apk","/system/app/x.apk");
symlink("/system/sd/app_s/x.apk","/system/app/x.apk");
請問一下 , 小弟按照第一頁的步驟一步步做完

為何刷完後沒有這頁?(是在哪可以看到A2SD?)


我的作法是一開始16G的記憶卡在電腦用MiniTool Partition Wizard Home Edition 分割1.2G左右轉成EXT3

我從設定看SD卡與手機儲存

只看到總空間13.74G
可用空間13.74G

內部儲存
可用137MB


是不是我分割錯誤呢?
ryushou wrote:
請教一下如果要自己新...(恕刪)


有一點我沒試過, 正常開機後再放入apk, 加上symlink, 我不知道Android會不會重新認到, 成功的話告知一下 : )

基本觀念沒錯, 但是刷機檔時要正確無誤的把檔案塞到正確路徑, 寫上正確連結.所以提出幾個問題
1. 你用原RevolutioN的A2SD+版, 還是我的A2E版?
2. 你正在寫刷機檔, 所以你的檔案最後要放到Desire的/sd-ext上對吧? 但是在正常開機後, 對應到/system/sd, 怕會搞混的話, 進adb shell檢查會比較保險.
3. 刷機檔不管要寫入/system, /data, /sd-ext都要另外mount上去, 不是開進Recovery就可以用, 除非你自己到Recovery的選項單獨mount相關分區.

以下假設用我的A2E版, 寫進/sd-ext分區, 而且你的x.apk放在sdext/app_s的目錄下.
run_program("/sbin/busybox", "mount", "/dev/block/mmcblk0p2", "/sd-ext");
package_extract_dir("sdext", "/sd-ext");
symlink("/system/sd/app_s/x.apk","/sd-ext/app/app_s/x.apk");
unmount("/sd-ext");

如果你是寫到原RevolutioN A2SD+版, 請先檢查/system分區剩餘容量是否大於你的x.apk檔案大小
接下來上例的symlink寫法是改成如下
symlink("/system/sd/app_s/x.apk","/system/app/x.apk");

檔案是否有寫入, symlink是否有成功, 可在adb shell下檢查.
或是想要root explorer就正常開機後.
1. 檢查/system/sd/app_s目錄是否多了一個x.apk檔
2. 然後到/system/app目錄下, 檢查x.apk是否也在此但檔名後面多了<-- x.apk, 那就表示是個連結檔而不是真正檔案放於此.
3. 系統真的多了x.apk可以用嗎? 請回報一下結果 ^^

IS0508 wrote:
請問一下 , 小弟按...(恕刪)


很多app都會秀出/sd-ext分區大小(你看到的app2sd欄位)
我是裝System Information PRO(系統資訊PRO) 可以秀出這樣的畫面.
不確定是不是每個人都需要這個app, 所以沒有放在ROM裡
不知道各位的Desire, 拿來上網需求多不多, 尤其像我在3C公司上班, 但是Desire又是辦吃不飽的方案, 所以只要不要使用3G卻能上網的需求, 一直不斷的在腦海裡打轉, 而最近又發現Desire+RevolutioN比官方ROM強的地方, 強到連韓國機的硬體再強, 也無此功能, iphone4是Desire之後才問世, 一樣無此功能. 以下介紹最近使用的心得整理.

1. USB Tethering.
1) Desire開3G分享給筆電, 當然可以使用Wifi無線基地台來達到目的, 但你總是還要充電又要接回筆電來充電嗎? 還有一種用法就是直接接筆電, 不但邊讓筆電上網, Desire也能順便達到充電目的. 當然, 有時就是只想讓自己的筆電上網, 不讓別人也上網時, 這種情況剛剛好. (我看到很多使用iphone的同事也都這樣子使用.
2. Desire關閉3G/Wifi, 但是在公司或家裡的電腦不就剛好可以上網? 何不同時接上USB線想幫Desire充電時, 同時透過筆電的網路來上網呢? 而這個功能是原Desire官方ROM沒作, 我看到硬體很強的韓國機也作不到, 你去問問iphone4的使用者, 他們更沒聽過可以這樣子用. 也許JB後有tethering app可以用, 但是至少我身邊的朋友或同事都不知道手機可以透過筆電上網覺得這是件合理的事

PC端, 目前小弟使用Win7. 需要USB driver, 所以安裝HTC Sync後, 把HTC Sync應用程式移除, 獨留USB driver. 當連線成功後, 裝置管理員出現HTC Remote NDIS based Device這支驅動程式.
網路會出現"無法辨識網路", 網路存取會出現"無法存取網路", 網路連接速度425.9Mpbs(果然是使用USB 2.0的速度), 實際上什麼都不用作不用設就可以使用網路了, 所以HTC這支USB 網路驅動程式寫的真是太好了.

Desire端, 依據你上述的兩種需求之一選擇"USB數據連線" 或 "網際網路傳送", 就會自動在"設定"針對不同選擇勾選不同設欄位, 我們使用者完全不用作任何設定就會啟動Android的linux底層NAT功能.
把網路資料流往PC送, 或是PC往Desire送.

使用至今, 使用USB網路時, 目前沒遇到任何app不能使用. 除了我在公司還是需要proxy app(小弟使用"自動代理" 全中文, 完全免費, 作者GPC是台灣人)使用與3G/Wifi一樣, 但是網路速度有明顯變快, 如Market下載app的速度.

為了顯示目前Desire使用網路時獲得的ip, Market上找到一套完全免費的Android Status.
會正確秀出Desire使用的網路是透過USB/3G/Wifi, 還會秀出正確的IP(Desire), Gate way IP(Win7). 同時也會秀出CPU最高時脈和目前跑的時脈, 還有人想知道自己的sdcard, FAT32切了多大, /sd-ext分區又切了多大, 都會一併顯示出來

2. APP調校
話說最近一次刷機, 是因為刷機前裝了號稱可以加速的軟體, 結果把我的網路分享功能弄掛了
於是乎重刷RevolutioN 3.0 A2E, 裝回200多個app加上改裝D2E後, 發現我的USB雖然可以使用, 但是不到1分鐘就斷線, 甚至連單純的充個電, 不到1分鐘就彈出USB選單. 後來也不知道我修正幾個D2E有問題的app後, 再凍結了幾套內建的app和service後, USB就超穩的, 至少使用1個小時也不會重新彈出USB選單.

這裡要強調三點.
1. 安裝task killer/manager讓它在背景把不需要執行的app給砍了. 可兼顧三項優點
1) Desire本身的先天不良就是連記憶體(RAM)也太少, 所以沒事不要亂執行軟體, 讓真正想執行的前景程式有充裕的記憶體空間, 忘了看了哪一篇文章, 有人回報camera本來會FC, 裝了RAM Manager PRO後就無此現象, 可見Desire的記憶體能妥善利用的話, 還是一台很好用的手機
2) CPU能少跑一堆無用的app, 當然有助於Desire整體的流暢度.
3) 記憶體少用一些, CPU少用一點, 是有助減少耗電量的不二法則

2. 有些app, 可能目前不需要用, 如果現在就移除, 未來想用時, 也有可能忘了備份, 甚至要重新刷ROM(如:股票), 所以最好是Desire可以裝上所有想執行的軟體, 但是平常不要讓他跑(不跑的優點有三個, 已寫在上面), 等真的想執行時, 再叫他出來使用就好. 像我現在不使用Plurk, 也不用股票, 但是說不定哪天我心血來潮會想用, 那就使用鈦備份, 把這些app都"凍結"起來
也有人現在不用facebook, 但不表示你永遠都不加入facebook, 那你也可以把facebook凍結.
以前我還會用viber, skype, 但是有半年都不使用了, 也不代表我以後都用不到, 偶爾以前的朋友或同事, 在公司上班MSN被IT擋住, 又會需要skype和他們聊, 那時又會需要打開skype, 所以我一樣把我目前的viber, skype都凍結後, 馬上就會發現這兩套軟體不會在背景偷偷的執行或存取網路資料.
沒事花點心思把暫時不用的app都凍結後, 等需要使用時, 鈦備份的"解凍", 不需要重開機就可以馬上使用解凍後的app了

3. 再次強調Autostart.
把第一次開機還有widget update不用的選項都關一關, 你就會發現裝了很多app後的流暢度依然還在.

lcsboy wrote:
有一點我沒試過, 正...(恕刪)


感謝回復,我是使用A2E版,依照指示後就沒問題了!


run_program("/sbin/busybox", "mount", "/dev/block/mmcblk0p2", "/sd-ext");
package_extract_dir("sdext", "/sd-ext");
symlink("/system/sd/app_s/x.apk","/sd-ext/app/app_s/x.apk");
unmount("/sd-ext");


不過我還是搞不懂symlink及這個ROM的一些概念,所以再請教一下
symlink(原始路徑, 目標路徑); (這我應該沒搞錯吧?)
而原始路徑的部分是要看開機之後的連結,所以是"/system/sd/app_s/x.apk" 嗎?
另外ROM本身會把"/sd-ext/app/app_s/x.apk"自動設定連結到"/system/app/x.apk"
所以才會把目標路徑設定成"/sd-ext/app/app_s/x.apk",而非設定成"/system/app/x.apk"嗎?

ryushou wrote:
感謝回復,我是使用A...(恕刪)


通常APP都會裝在/system/app裏
所以你裝好系統後可以用RE去看/system/app裏面的AP
他會寫AP原來的位置是放在哪,如果他是放在SD卡,那會有連結指向SD卡

第2個問題應該直接指向/system/app就可以
單一個AP可以直接指, 但是整個資料夾就要小心,
避免有兩個同時指向/system/app,不然會錯亂

以上還是等L大說明比較好.

jesse0817 wrote:
通常APP都會裝在/...(恕刪)


久違的J大又出現了

我想再次說明一下路徑的觀念, 希望有助於有興趣改ROM的人, 可以容易而且正確的製作出自己的客製化

1. 最原始的ROM, app擺放路徑
系統app放置於 /system/app
使用者一般app放置於 /data/app
以上基本原始觀念, 我想適用於所有HTC ROM.
(PS:想惡搞把app從/system/app裝到/data/app或是相反的人, 可以試試鈦備份)

2. symlink
可以想像成Windows下的short cut(捷徑).
你可以在C:\Program Files下的某個資料夾, 拉到桌面變成一個捷徑, 接下來, 你點擊這個捷徑圖示, 是不是就會把這個資料夾給打開來? 如果這個觀念可以懂或是覺得很合理, 那請繼續往下看.
以上例而言, 捷徑是放在桌面路徑(C:\使用者名稱資料夾...\Destop), 但是點擊後, 是會指到C:\Program Files下的路徑.

symlink就像是這樣的觀念, 可以在linux下作一個路徑指到任意的路徑. 在建立symlink的同時, linux不會去check是否真的有這樣的實體路徑或檔案存在.
symlink(刷機檔語法)和ln(linux指令) 後面都是一樣接兩個參數:原始路徑, 目標路徑
但是在修改ROM時, 我都會想成這樣==>
symlink/ln (最後要指向的虛路徑/檔名, 這個symlink要呈現在哪個路徑/檔名)

為啥常常搞混路徑怎麼我寫的跟大家想的都不一樣! 因為非官方ROM很多東西都搬到/sd-ext(誰叫我們的Desire先天不良, HTC很摳門的不給大量的記憶體) 而早就不是在/system/app或/data/app下.
因為檔案和路徑都搬到/sd-ext下後, 怎麼讓Android找到, 所以是建了很多symlink

3. 為啥在Recovery下是/sd-ext, 在正常開機下, 是/system/sd?
如果上面第2點你看懂了, 也知道linux下可以使用ln指令來建立一個捷徑
指到A, linux就會自動去找到B, 接下來這個問題就容易懂了.
大家可以去看自己ROM裡的 /system/etc/init.d目錄(專門放所有自動執行的script)
打開40a2sd這個script, /dev/block/mmcblk0p2 這個是/sd-ext在Android系統裡所在的裝置名稱.
後面會看到/system/sd. 有興趣的人可以研究一下 linux指令.
但結果只有一個, 這個script就是A2SD+的重點, 把我們所熟知的/sd-ext對應到/system/sd
看到這有沒有晃然大悟了一點? 但沒事不要把這個script手賤亂改, 那包準你下次開機會當在HTC白底綠字. 因為放在/sd-ext下的東西依然放在/sd-ext下, 但是Android要找/system/app或是/data/app找不到時, 就掛掉了
所以在Recovery下, /sd-ext下的東西本來就還在/sd-ext, 你要蓋掉任何/sd-ext下的檔案, 你就直接蓋掉吧. 但是如果你要寫symlink或是ln指令的話, 通常是要給Android正常開機後認得到, 那你就要把/sd-ext想成/system/sd, 如果還不懂為什麼, 請從這篇文章的第3點開始看, 還有研究一下你的/system/etc/init.d/40a2sd檔, 礙於篇幅和拙筆, 我也只能領引一些.

4. Revolution A2SD+和我改的完全A2E的不同.
經由J大的引領和賢大(A2E第一人)的啟發.
/data/app這個目錄下所有東東, 會在刷完ROM的第一次開機, 被/system/etc/init.d/40a2sd這個script搬到/sd-ext/app(第二次正常開機後就會對應到/system/sd/app目錄)
也就是說你把主ROM的zip解開後, /data/app下, 不管你塞了多少app, 多少個自創路徑, 刷完機的第一次正常開機後, 你在Recovery下就會看到/sd-ext/app就是原先zip裡的/data/app, 而在第二次正常開機下, 不管你是使用Root Explorer或是adb shell, 都是在/system/sd/app看到原始的這些app和自創路徑.
到此! 如果你觀念都了解了就不難理解, 而且融會貫通以上3點! 寫到此, 通通不關我的事, 因為都是40a2sd的功勞, 人不是我殺的, 我只是寫出經驗談.
所以你要有個觀念, 不管是A2SD+, Data++, A2E, /data/app 這些app在正常開機後, 都裝到/sd-ext去了
現在把重點移到系統app!!! 在第一點時不是說原始路徑是/system/app? 沒錯! 很正確.
而A2SD+/data++只是把部份的系統app, 在刷機時先放到/sd-ext/app_s裡. 接下來寫下正確的symlink.
所以放internel memory的app放在/system/app, 而塞不下的app或是不常用的app就放在/sd-ext/app_s
只是symlink建好後, Android就會在/system/app下, 除了原先擺放的app, 還會找到/system/sd/app_s下的所有app(也就是我們放在/sd-ext/app_s).
如果到這裡還是搞不懂/system/sd為啥會對應到/sd-ext, 那需要再回到第3點研究一下.
如果看到這都懂, 那很開心的, 想問你一個問題! 原先要放在/data/app的一般使用者app實際上放到哪了?
是不是/sd-ext/app? 也就是說大家在切/sd-ext partition時, 不是都切了1GB多嗎? 所以基本上你的app怎麼裝都是裝到/sd-ext/app而不是/data分區下的app, 這樣/data區根本很難爆掉.
然而系統app呢? 是不是還是會裝到/system/app下呢? 只是有一部份先放到/sd-ext/app_s, 但如果你想裝新的系統app, 或是製作ROM的作者忘了擺, 事後要安裝, /system通常只剩不到5MB(看你的MTD怎麼切), 是不是很容易爆掉?
於是乎我把原先要放在/system/app改到system/app_s, 放在/sd-ext/app_s的不變.
在rom的zip下, 多建了一個data/app/app_s目錄, 因為第一次正常開機後, /data/app下所有的目錄和檔案會被40a2sd這個script自動搬到/sd-ext/app目錄下, 也就是從/data分區搬到/sd-ext.
而我要的目的就是把原始/system/app想要搬到/sd-ext, 所以最後在/sd-ext/app/app_s是原先所想放的/system/app, 我把/sd-ext/app/app_s這個實體位置, 寫了一個symlink, /system/sd/app/app_s就是指到/system/app, 正常開機後, 不管你怎麼安裝系統app, 結果是裝到/sd-ext分區, 實現真正完全A2E.
而至於原先放在/system/app_s和/sd-ext/app_s的所有app檔, 當然也是另外建了所有symlink, 讓Android一開機就可以認為他們放在/system/app下.
/system/app已不是原先官方ROM裡的/system/app
1) 他的實際路徑是被重新導向到/sd-ext/app/app_s下, 為了是以後安裝系統app不會爆掉
2) /system/app會包含來自三個目錄下的所有app
/system/app_s (原/system/app的所有檔案)
/sd-ext/app_s (Sense 2.1 + Sense 3.0, app太大或是比較少用的app大都被放於此)
/sd-ext/app/app_s (正常開機以後, 安裝的系統app會被放於此)

最後, 以ryushou的實例, 為啥我會先問使用原A2SD+結構還是A2E結構, 如果是只想安裝到/data/app的一般使用者app, 就不需多此一問. 除非你重刷ROM, 而且把自己想裝的app放在ROM裡重刷, 否則你自己在正常開機後copy進去的app, 是絕對沒有人, ROM也不知道, Android系統更不知道你copy進去的app要幹嘛! 請自己使用adb shell或是刷機檔來建立symlink.
但是adb shell就可以明顯感覺到正常開機下, 你一定要在/system/sd目錄下看到原始的/sd-ext
而在Recovery下只要mount /sd-ext, 你就可以看到原始的sd-ext.
至於看到最後, 還搞不清楚正常開機下為啥/system/sd會對應到實際上/sd-ext請往回參考第3點自行研究之

最後還是要感謝J大的提示, 讓我了解A2E的原理所以才能製出滿意的A2E甚至D2E第18頁教學
小弟在公司太多台筆電可以用, 今天想到一種連線方式, 居然Desire實作成功了

目的: Desire關閉3G/Wifi, 但是想藉由Desire讓另外一台電腦上網

1. 一台連接網路的電腦A, 而且確定電腦A上的網路正常運作.

2. Desire關閉3G/Wifi, 連接到電腦A, USB選單彈出時選"網際網路傳送"
等左右箭頭圖示出現時, 開啟Wifi無線基地台.

3. 一台想上網但是沒接網路線的電腦B, 開啟wifi, 掃到Desire分享的無線基地台
在Windows 7下, 無線網路連線成功 但是出現三角黃色驚嘆號! 網路顯示無法存取.
不管! 就是給他開啟瀏覽器! 結果登上網成功!!!

Win7被騙得莫名奇妙!

文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 79)

今日熱門文章 網友點擊推薦!