The Art of Readable Code && High Performance Comments

前天買了台 Samsung Galaxy Tab 7.7,感覺不錯。畢竟 7.7 較適合單手把持,看電子書挺方便;10 吋只能抓住側邊,容易誤觸或阻礙視線,也許桌面或手寫應用會比較適合

然而 Samsung 這系列機種的掛載點設定與其他 android 系機種不同:大多機種將 sdcard 掛載在 /mnt/sdcard,但這系列機種則掛在 /mnt/sdcard/extStorages/SdCard (linux 底下的目錄/檔案 名稱是大小寫相異的)。因此許多原本設計將資料寫在 sdcard 裡的程式,會因為 /mnt/sdcard 仍屬於主機儲存空間,而將內部儲存吃暴。另外 Google 在 Android 3.0 加入了讀寫 sdcard 的權限;若是有些舊 APP 未要求該項權限,會無法寫入 sdcard (但可以寫入 /mnt/sdcard)。

在偉大的航道上奮鬥一晚之後,終於弄出比較像樣的解決方案:

事前準備:

  1. Root 過的機器,可以參考 xda這邊
  2. 電腦上安裝最新的 Samsung Kies 或 USB Driver,才能透過電腦存取機器上的檔案;安裝 Notepad++ 或其他能夠處理換行字元代換的編輯軟體
  3. 平板上安裝 Root Explorer, Script Manager
  4. 下定決心:這台機器要有不拔除 sd card 的打算,並且更換卡片時會麻煩很多

第一階段:調整目錄掛載架構

  1. 使用 Root Explorer 確認 需要備份的目錄名稱;也可以從 設定 -> 儲存空間 -> 其他檔案 得到這些訊息
  2. 針對每個需要被備份的目錄 (/mnt/sdcard 底下 且 很肥) 進行下列處置:
    1. 停止對應的服務 / app (使用內建程式 或 Task Killer 一類的軟體)
    2. 將舊有資料移到 sdcard (/mnt/sdcard/extStorages/SdCard) 的同名對應目錄裡;比如說 原本是 /mnt/sdcard/.sugarsync 就搬到 /mnt/sdcard/extStorages/SdCard/.sugarsync
  3. 以下面的內容作為範本,並將步驟 3 得到的目錄填入列表中(如果不知道怎麼寫,先閱讀鳥哥這篇);將內容存為 Unix 格式換行字元的文字檔後,複製到平板上

    目錄名稱務必妥善用括號保護,並且跳脫換行字元。
  4. 在平板上開啟 Script Manager,找到步驟五傳過來的檔案,開啟,打開該檔案的 Su 旗標並執行 (Run)
  5. 如果步驟 7 發生錯誤,可以利用 Script Manager 的編輯 (Edit) 功能直接在平板上修正,或者回到電腦編輯後,重新上傳。最糟狀態下,只要重開機就能回復到步驟 6 的狀態。常見錯誤包含打錯目錄名稱、跳脫字元漏了或多了、換行字元未修正、括號不成對 等等
  6. 如果在 Script Manager 中執行正常,那麼可以打開 Script 的 Boot 旗標,每次開機便會自動執行

第二階段:修正(放寬)權限限制

  1. 基本上參考 這篇
  2. 使用 root explorer 開啟 /system/etc/permissions/platform.xml
  3. 找到 WRITE_EXTERNAL_STORAGE 這項權限設定,在其中加入 <group gid=”media_rw” />  選項
  4. 存檔,重開平板,收工

基本上寫這麼一長串有點懶,就先不抓圖了 XD
如果有人需要協助就留個言吧,我再來補上操作圖解

發表迴響

分類

%d 位部落客按了讚: