開啟ASUS ZenPad 10 Z300M SD卡為內部儲存空間的步驟

上周六在網路上買了ASUS ZenPad 10 Z300M,掛載的是Android 6.0(Marshmallow,棉花糖),網路上賣的都是容量16G的版本,找不到更高容量,因為Android 6.0已經能把外掛的MicroSD卡格式化為內部儲存空間,讓系統容量得以擴充,因此我同時也加買了一片64G的Class 10的MicroSDXC卡。

人算不如天算的是ASUS竟然把這個擴充容量功能給關掉了!透過線上客服得到的理由是因為大部份應用程式尚未支援內部儲存空間,導致系統不穩定,因此暫不開啟此功能,至於何時能啟用則是不知-無預訂開放時間表。既然官方不開放,只好自力救濟了。

由設定進行格式化之操作

首先由Make sd card become internal storage Android 6.0.1 How To :-ZE551KL(Laser)查到啟用內部儲存空間(Internal Storage)的作法:

  1. 讓平板進入開發者模式:設定→【關於】→【軟體資訊】→在【版本號碼】上連按7下,就能在設定裡看到【開發人員選項】。開啟【開發人員選項】裡的【USB 偵錯】。
  2. 此處下載 adb。adb是Android Debug Bridge的縮寫。將下載的檔案解壓縮,接著以其內的adb.exe繼續處理。
  3. 將平板連上電腦,當平板上出現【允許 USB 偵錯嗎?】時按【確認】,出現【是否使用USB進行檔案傳輸?】時選取消。
    usb debug
  4. 執行cmd.exe進入命令提示字元(DOS視窗),執行下列sm指令(sm是Storage Manager的縮寫):
D:\adb-tools>d:
D:\adb-tools>cd \Adb-tools
D:\adb-tools>adb shell
shell@P00C:/ $ sm set-force-adoptable true
shell@P00C:/ $ exit

5.再進入設定→【儲存空間與USB】→【SD 卡】時,會多出【進行格式化,設為內部儲存空間】選項
format options

如果先前SD卡已經格式化為可攜式儲存空間,則可按其右上角的設定來選用上述選項。
portable setup

▼ 格式化時的畫面。在20%的地方停很久,然後直接報錯...
formatting

用adb.exe操作

可惜我用了上面步驟仍無法順利將SD卡變更為內部儲存空間,畫面停在正在格式化「SD卡」...20%的地方約3分鐘後就出現SD卡無法清除的錯誤訊息而結束。

再搜尋到Here's how to configure adoptable storage on your S7 / S7 Edge - News - MoDaCo的作法後,又再開始嘗試:

在命令提示字元下進入adb shell。重點說明如下:

  1. 用sm列出sm的所有可以使用的選項
  2. 用sm list-disks 找出平板SD卡的磁碟ID,列出的ID是 disk:179,128
  3. 用sm list-volumes all列出此SD卡裡的所有Volume,其中public:179,129是格式為可攜式儲存空間的Volume ID
  4. 用sm partition disk:179,128 private將SD卡變更為內部儲存空間(其Volume ID會以private開頭)
  5. 不管有沒有出現錯誤訊息,在shell@P00C:/ $ 又出現後,以 reboot 重新開機
d:\adb-tools>adb shell
shell@P00C:/ $ sm
usage: sm list-disks [adoptable]
       sm list-volumes [public|private|emulated|all]
       sm has-adoptable
       sm get-primary-storage-uuid
       sm set-force-adoptable [true|false]

       sm partition DISK [public|private|mixed] [ratio]
       sm mount VOLUME
       sm unmount VOLUME
       sm format VOLUME
       sm benchmark VOLUME

       sm forget [UUID|all]

Error: java.lang.IllegalArgumentException
1|shell@P00C:/ $ sm list-disks
disk:179,128
shell@P00C:/ $ sm list-volumes
private mounted null
public:179,129 mounted 971A-B747
emulated mounted null
shell@P00C:/ $
shell@P00C:/ $ sm partition disk:179,128 private
shell@P00C:/ $ reboot

目前sm partition操作很不穩定,經常會出現** java.util.concurrent.TimeoutException: Thread Binder_B gave up waiting for partitionPrivate after 180000ms** 之類的錯誤訊息,重開機後若SD卡顯示的是SD卡已毀損或不支援,那麼再將SD卡格式化為可攜式儲存空間後再用adb.exe重新執行一次,有時突然就成功(重新試了幾次,仍無法抓到成功的原因....)。

測試過程中發現似乎用混合模式比較容易成功,如 sm partition disk:179,128 mixed 50 就是可攜式儲存空間佔50%,內部儲存空間佔50%。private volume後面要有加密字串才是成功的狀態:

shell@P00C:/ $ sm list-volumes all
emulated:179,131 unmounted null
private:179,131 mounted fd277727-60a3-4655-9795-f77f6d5e8a7b
private mounted null
public:179,129 mounted 6D63-1203
emulated mounted null

變更App的儲存空間

  1. 進入某個App的應用程式資訊畫面。
    app1

  2. 輕觸【儲存空間】,再輕觸【變更】。
    app2

  3. 再選擇要存放的位置。
    app3

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *