強制程式安裝至 SD Card

Android 2.2 內 App2SD 這個功能可以將 App 安裝至 SD Card 內,但這個功能需要 App 本身在編譯中標明有關設定才可使用,所以不是所有 App 都可以移至 SD Card。

其實可以透過修改手機內的設定,強制開啟程式中的 App2SD 設定,可以將 App 移至 SD Card。

留意手機必需是 Android 2.2 Froyo 或以上,本身具備 App2SD 功能,才可使用用這個 “強制安裝SD Card” 方法。

不要用在 Widget 和 輸入法
這個強制方式,不用 Root 機。而且適用於大部程式,但仍有小部未能強制開啟,例如:PayPal App。另外,Widget 和 輸入法不建議 App2SD,因可能會導致不能操作。

過程十分簡單,並不複雜
============================
*** 新版本 SDK 內的資料夾位置有所變遷,所以程序亦有所變更 ***

1. 開啟手機內 USB 偵錯模式
在手機 Home 畫面,按[Menu]鍵 > 設定 > 應用程式 > 開發,勾選 USB 偵錯。

USB Debug Mode 偵錯模式

2. 下載 Android SDK
在電腦,到 http://developer.android.com/sdk/index.html 下載 Android SDK,選擇下載 exe 。

下載 Android SDK

3. 安裝 SDK
根據安裝精靈,依照指示安裝就可以,不用作特別的設定。
最後完成時,選擇啟動 Start SDK Manager,按[Finish]。

4. 執行 SDK Manager
開啟 SDK Manager, 它會列出一列 package 讓你 install
只需勾選第一個 “Android SDK Platform-tools, revision….”
其他全部轉為 “X” 不用安裝,跟著按 Install 進行安裝。
SDK Manager
完成後就關閉視窗便可

5. USB 連接手機
用 USB 線連接手機至電腦

6. 開啟 Command Prompt
在電腦,開啟 Command Prompt
(就是按 Windows 的[開始]> [執行]> cmd.exe 按[Enter]鍵)

7. 轉換至 Android SDK Folder(看下圖)
在 Command Prompt 內轉至 Android SDK 所安裝的 Folder。
就是在安裝過程中,所選擇的安裝位置。

8. 再轉至子資料夾 platform-tools

ADB Shell

9. 跟著輸入
adb shell pm setInstallLocation 2
按[Enter]鍵。

10. 完成。可以拔 USB 線。
============================
你可以去 App 再試 App2SD,一些原本不可以 App2SD 的程式,現在也可以 App2SD。

回復原本設定
若你發覺有不妥,要將手機回復原本設定,只要再做一次整個步驟。
在 Step 9 改為執行下列指令便可
adb shell pm setInstallLocation 0

2 – 代表 SD Card
0 – 代表 手機 Internal Storage

在〈強制程式安裝至 SD Card〉中有 116 則留言

  1. it says ” ‘adb’ is not recognized as an internal or extermal command, operable program or batch file.

    what should i do!?:?!?!??!?!

  2. Sorry! 原來新版本 SDK 內的資料夾架構改動了.
    新版本下, 你需要安裝SDK.

    我們修改了文章, 你可以跟著做.

  3. sry!

    I typed in cd “Android\android-sdk-windows”

    it shows up ” The system cannot find the path specified”!!

    but i am sure i install the SDK under the right folder….

    what should i do again?

    so frustrated!!

  4. 你要確定你所安裝的位置
    在上面的 screen capture示範, 我們的 SDK 是 安裝在
    Android\android-sdk-windows

    所以就 change directory (cd),
    cd Android\android-sdk-windows

    安裝 SDK 都是預設在 Program Files\Android\android-sdk-windows

    那就應該輸入
    cd “Program Files\Android\android-sdk-windows”

    所以, 你要確定你的 SDK 安裝在那裏,跟著 change directory (cd) 至那一個資料夾.

  5. is there anyway i can contact u by email?

    i can send u some of the screen shots from my desk top…

    thanks a lot!

  6. Hi,

    When I complete step 9, an error screen return: “Device not found”.

    Can you help? What step I had missed?

  7. 各位, 又話音量+/-健可wake up個電話。我部N1不能的! 請教路!:D

  8. 關於音量 +/- 鍵 wakeup! 其實就是 Disable 了 N1 原先的 Screen Lock 功能.
    原有的 Screen Lock 限制了只可用 power 去 wake up.

    介紹三個 apps,
    NoLock 就是 disble 手機的 lock, 即是按甚麼鍵也會wake up手機
    https://market.android.com/details?id=org.jraf.android.nolock

    AnyUnlock (免費的), disable 原有的lock, 再用一版 日期時間防止誤碰
    https://market.android.com/details?id=org.liberty.android.anyunlock

    WidgetLocker (要$的), 十分精美, 有不同類別的 lock screen 效果
    https://market.android.com/details?id=com.teslacoilsw.widgetlocker

  9. Installed N1 driver then re-try the whole process. It work now.

    Thanks for sharing!

    Hi Others,

    Pls reminded to type exact “adb shell pm setInstallLocation 2”.

  10. 我已經改為cd “Program Files\Android\android-sdk-windows” 可是第七步驟就一直說”系統找不到指定的路徑。”

  11. > 系統找不到指定的路徑
    就是指你輸入的 path 有錯誤.
    你要確定 android-sdk-windows 的安裝位置.
    你可以用 Windows Explore 找清楚 SDK 是安裝在那裏, 跟著就輸入

    另外, 留意 Command 操作.
    一般開啟 Command Prompt 都是在 C:\Users\XXXX>
    你現在就在 C:\Users\XXXX\ 的資料夾內

    你要回到 C:\ 就要打 cd\
    跟著再轉至 cd “program files\……”

  12. 留意手機必需是 Android 2.2 Froyo 或以上,本身具備 App2SD 功能,才可使用這個 “強制安裝SD Card” 方法。

  13. 可以.

    只要是 android 2.2 或以上支援 app2sd 的, 都可以這樣做.
    令更多 app 可以移至 sd card 內.

  14. 安裝 SDK 後, 你要啟動 SDK Manager 繼續進行第四步.

    你可以開啟 Windows 檔案總管, 在 SDK 安裝位置找到 SDK Manager,
    只要點按就可以啟動 SDK Manager.

    跟著繼續進行第四步.

  15. 我是用dell streak的,已升2.2,

    執行到最後一步:
    輸入”adb shell pm setInstallLocation 2″
    按[Enter]

    之後出現了:
    “error: device not found”

  16. 你可以 Select from Product Model, 再選 Mobile Phone & Tablet, 之後, 在 Mobile Phone 可以找到 Venue 系列. 在 Tablet 可以找到 Streak 系列.

  17. 我部desire都搞掂,thx!真係好簡單,最緊要在輸入路徑時check清楚程式安裝在自己PC內的路徑,我就和示範的有少少唔同。

  18. 對呀, 安裝路徑未必跟上面的圖完全相同, 要做番相對應調整呢!

  19. 我的SDK一直無法安裝
    他一直跑住要我安裝JAVA
    也去安裝了,但是依舊無法安裝SDK
    請問這是為什麼?

  20. 若之前的安裝曾經失敗, 有可能會有一些檔案被安裝, 但未有移除.
    這些檔案有可能導致往後安裝失敗.

    在Java 相關旳安裝中, 這個情況偶然也會出現的.
    你可以看看.

  21. 開啟 Command Prompt 後, 可能會這樣
    C:\Users\abcde>

    跟著, 你可以輸入 cd\
    就會返回至 C: 的 根目錄 Root Directory
    變成這樣
    C:\>

    接著可以輸入
    cd 你的Android SDK位置

    例如: 你的 SDK 安裝在 android\android-sdk-windows\
    就輸入
    cd android\android-sdk-windows\

  22. 我在最後無法完成都顯示一堆the 下面0~~1~~~~2~~~怎ㄇ回事ㄋ

  23. 依照指示到最後出現以下:
    adb server is out of date. killing…..
    *daemon started successfully*
    error : device not found

    應怎辦???

  24. Error Message 有兩個問題,
    1. “adb server is out of date. killing”
    若果你有安裝 DroidExplorer, 你可以在 Windows 工作管理員內將 DroidExplorer 的 Services kill掉.

    2. error : device not found
    這可能是你未有安裝合適的 USB Driver
    也可能是未有 “開啟手機內 USB 偵錯模式”

  25. 那句 “error : device not found” 就是表示未能找到你的手機。

    這有很多的原因,
    – USB 線未有連接
    – USB Debug Mode 未有開啟
    – Driver 安裝問題

    在手機的 Notification bar, 看看應有以下兩項
    – USB 已連接
    – USB 偵錯模式已啟用

  26. 不好意思,
    請問一下連線模式要選哪一個,
    我是選”裝載為磁碟機”,電腦也出現磁碟機,
    但是最後一個步驟還是出現”error : device not found” ,
    還是要選別的模式呢?

  27. 不用選 “裝載為磁碟機”.

    連接 USB 線後, 你看見 “USB 偵錯模式已啟用” 就可以.

  28. 我弄到最後一步驟打完adb…結果按enter他說”不是內部或外部命令,可執行的程式或批次檔” 可以幫幫我嗎謝謝你!!!!

  29. 你所在的資料夾內, 找不到 adb 這個檔案.

    你可以檢查是否轉換至正確的資料夾.

  30. 我按你做方法做完之後係得左..但最後我再裝程式的時候唔知點解裝唔到呀..求求我..

  31. 回復原本設定
    若你發覺有不妥,要將手機回復原本設定,只要再做一次整個步驟。
    在 Step 9 改為執行下列指令便可
    adb shell pm setInstallLocation 0

    2 – 代表 SD Card
    0 – 代表 手機 Internal Storage

  32. 但回覆之後都還是有些程式是裝不到..是不是我的手機的問題呢?我的手機是DESIRE G7 ANDROID 2.2

  33. 你的問題應該跟這個 app2sd 改動沒有關係. 因為這個改動只是將程式安裝在甚麼位置. 2.2 本身已經可以 app2sd, 這個改動只是將一些沒有設定 app2sd 的程式, 開啟 app2sd 選項.

    可能是你所安裝的程式問題. 其實你所指的安裝不到是什麼狀況, 有什麼顯示? 是什麼程式安裝不到呢?

  34. 問題已經解決了..原來這是android 的問題..他不是每一個程式都可以裝..要作一些設定才可以..要刪除一些東西..不過已經解決了..謝謝..我再試一試有沒關系..謝謝

  35. 我部係desire,裝到而且好順,但當用HTC Sync時,所有sd內嘅apps都認唔到及用唔到,係唔係一定咁樣,有無得解決呢?

  36. 卡在第4步驟~ 安裝完成後 沒有選上能去SDK Manager 只有Finish!!

  37. 那就在你的 SDK 所安裝的資料夾內, 找 SDKManager.exe 執行就可以.

  38. 小弟有照著大大的方式去做也成功了,現在的問題在手機與電腦連接時選擇讀取手機上的SD卡後,安裝到SD卡的APP圖示都不見了,到手機中應用程式內把它移到手機就又出現了,請問這是哪裡的問題呢?謝謝

  39. 手機連接電腦, 並將SD Card 開啟為 USB 儲存裝置時, 手機在這時候是不可讀取 SD Card, 儲存在 SD Card 的程式亦不可開啟的.

    拔掉USB 連接後, 手機就可讀取 SD Card, 在 SD Card 內的程式就可回復運作.

  40. 裝左安裝至sd card, 但系都只系左在內置SD咭, 而唔系裝在外置SD咭, 咁樣岩唔岩呢, 其實有冇辦法裝系外置咭呢, 因為我用LG P990, 內置都系得5G度咋

  41. 從 XDA Forum 看了一些 Optimus 2X 有關 App2SD 的討論, APP2SD 都只是將 app 移至 內置的 SD Card, 看來還未有方法移至 外置的 SD Card.

  42. 請問一下最後輸入”adb shell pm setInstallLocation 2″指令以後,會有什麼畫面嘛?

  43. 按下 [Enter] 後, 沒有什麼特別顯示, 只是跳回 command prompt.
    好似下面這樣.

    C:\ … \platform-tools>adb shell pm setInstallLocation 2
    C:\ … \platform-tools>

  44. 這跟免費版和收費版沒關係.

    只要那個 app 容許 app2sd 就可以.
    再應用上面所講的方法, 大部份的 apps 也可以 app2sd.

  45. 你好, 多謝你的回复, 如果有機會發現Optimus 2X 能夠移至外置的 SD Card的方法, 希望可以給我們通知, 謝謝你

  46. 你好
    我也出現”error : device not found”
    USB 已連接- USB 偵錯模式已啟用
    進入你提供的網頁後不知道哪個才是安裝I5801的
    USB Driver的link ?

  47. 已經找到driver
    成功了!!謝謝你
    但少數幾個客製化的程式
    如S市集,Market等
    好像無法移至sd卡?

  48. 對呀, 有少部份 Apps 就算用了這方法,也無法移到 SD Card.
    另外, widget 那些也不要移到 Sd card.

  49. 你好 我的手機已經顯示以下2個訊息:
    USB 偵錯模式已啟用
    以媒體傳輸模式連線

    但是在輸入adb… 按下enter之後
    仍然會顯示 “error : device not found” 這一行錯誤訊息
    請問我該如何解決呢?

  50. An@droid大大您好!!

    我是使用Sony Ericsson XPERIA PLAY。

    跟您請教,第一次我按照您的教學,最後按下Enter時出現”error : device not found”。

    第二次我安裝了Sony Ericsson PC Companion 2.0之後按下Enter出現了一大堆的文字,以為成功了,後來發現並沒有成功,也不知道那ㄧ堆文字的意思是什麼,也怕會不會影響到手機內部的什麼設定???

    第三次我重新再做一次步驟4,按下Enter沒有再出現什麼訊息了,看一下手機成功了。

    我有幾個問題:

    1.還是會有部份程式無法移至SD卡???

    2.adb shell pm setInstallLocation 2之後,是修改了手機內部的什麼設定嗎???會造成什麼影響嗎???

    假設一:在我沒有復原成adb shell pm setInstallLocation 0的情況下將整台手機完整的恢復原廠設定(重灌),手機依然還會是adb shell pm setInstallLocation 2的設定嗎???

    假設二:在使用了adb shell pm setInstallLocation 2之後,將一些程式移至SD卡後,再恢復成adb shell pm setInstallLocation 0,那些被移至SD卡的程式還可以移回手機嗎???

    假設三:如果假設二是可以的話,那還可以不再使用adb shell pm setInstallLocation 2將程式移至SD卡嗎???

    Thanks a lot !!

    ^_^”

  51. Leo,

    1. 對呀, 有少部份 Apps 就算用了這方法,也無法移到 SD Card! 另外, widget 那些也不要移到 Sd card.
    2. 那個 2 就是指 SD Card, 0 就是手機的內存. 這個指令就是 apps 預設的安裝路徑, 沒有其他的影響.
    若果重灌, 一切也會回復至最初的情況, 就是沒有執行過 “adb sell pm setInstall….”.

    恢復成adb shell pm setInstallLocation 0,那些程式是可以移回手機.

    … 不太明白假設三?!

  52. An@droid大大您好!!

    假設三的意思是,在使用了adb shell pm setInstallLocation 2之後,將程式移至SD卡後,再恢復成adb shell pm setInstallLocation 0,而我再將程式移回手機內,不再使用adb shell pm setInstallLocation 2已是恢復成adb shell pm setInstallLocation 0的狀態下,還可以再將程式移至SD卡嗎???(因為已經執行過2了,而也已經恢復成0了!!)

    另外還有一個小問題,如果說我用了2將程式移到SD卡後恢復成0,之後再下載的程式移至SD卡的按鈕還會是鎖住的狀態嗎???

    Thanks a lot !!

    ^_^”

  53. > 還可以再將程式移至SD卡嗎???
    應該不可以呢.

    > 如果說我用了2將程式移到SD卡後恢復成0,
    > 之後再下載的程式移至SD卡的按鈕還會是鎖住的狀態嗎???

    若那個程式本身沒有支援 “app2sd”, 那就是會鎖著. 就像原本的那樣.

  54. 謝謝大大分享這個方法
    讓大家都受惠其中
    而且還解說得很詳細
    讓我也成功的讓許多app2sd了
    超感謝你的!!!!!
    你的付出成就了許多人的成就感…
    感謝你!

  55. 我用既係xperia arc, android 2.3.2
    係cmd.exe入完command之後…無任何error msg…但係仍然不能app2sd
    請問應怎做呢??

  56. 沒有 error mesg, 應該是 ok 的.

    另外, 不是所有 apps 也可以開啟 app2sd.
    有些 apps 用了這個方法, 仍不可以 apps2sd.

    你說的”仍然不能app2sd” 是什麼情況?

  57. 回 Sa, 看了數個 forum, 也找不到類似情況.
    你再試一下, 看會否成功.

    也看看其他未有 app2sd 的, 可否開啟 app2sd?

  58. 大大你好,我執行了adb shell pm setInstallLocation 2後

    他出現了一堆命令的說明列吧,而且拔除usb線後,還是不能移動app

    請問大大我是那邊做錯了?

  59. 我卡在第7步骤 一直说找不到路径 T_T
    我的SDK是安装在program files(x86)下 请问该怎么做?

  60. 開啟 Command Prompt 後, 可能會是這樣
    C:\Users\abcde>

    跟著, 你可以輸入 cd\
    就會返回至 C: 的 根目錄 Root Directory
    變成這樣
    C:\>

    接著可以輸入
    cd 你的Android SDK位置

    例如: 你的 SDK 安裝在 C:\Program Files (x86)\Android\android-sdk-windows
    就輸入
    cd C:\Program Files (x86)\Android\android-sdk-windows

  61. 這個純粹是鍵入資料的錯誤呢!

    “找不到路径” 的意思就是你輸入的 “路徑” 不正確.
    你再檢查安裝的位置, 跟輸入的是否一樣.

  62. 好的谢谢大大 那如果输入正确的路径会出现怎样的信息吗?

  63. 例如:
    你的 SDK 安裝在 C:\Program Files (x86)\Android\android-sdk-windows, 就輸入
    cd C:\Program Files (x86)\Android\android-sdk-windows

    C:\> cd C:\Program Files (x86)\Android\android-sdk-windows

    拍下 [Enter],就會變成這樣
    C:\Program Files (x86)\Android\android-sdk-windows>

  64. 不好意思 想問一下 HD2 NAND 2.3 版

    我除錯模式已經開了 也有安裝 google usb driver package

    但是還是出現也碰到”error : device not found”

    HTC網站我去看了一下 沒有可以裝的

    我看硬體裝置 有出現 android composite ADB interface

    但是還是跑”error : device not found”

    謝謝

  65. 回 Eric, 你的情況似 Driver 不正確.
    Google USB Driver 只適用於 Google 的 Nexus One 和 Nexus S.

    你試試在 HTC 網站, 找尋 HD2 的 driver.

  66. 回 jimleo,

    就是最下面 Windows 三個的其中一個, 那就看你的電腦是 x86, 還是 x64 呢.

  67. 安裝程式偵測不到我已經安裝的JDK…
    先謝謝您的熱心教導

  68. 不好意思上面的問題我已經解決了
    現在卡在Command Prompt
    程式裡面的指令直接是C:\Documents and Settings\Owner>
    沒辦法刪除Documents and Settings\Owner>
    請問要怎麼解決?

  69. 只要鍵入 cd\ 再按 Enter
    就回返回至 C Drive 的根目錄 (root directory)
    C:\>

    跟著再鍵入 cd SDK_安裝路徑 便可

  70. 不用客氣, 只是分享一下經驗.
    希望幫到大家, 可以用盡手機, 發揮最大功能 🙂

    記得多點來捧場呢!

  71. 上網找了一會, 其中一個方法是, 當遇到 “JDK not found”, 就按[Back] 再按 [Next], 這樣它就會找到.
    這方法有點 “兒戲”, 但不少網友也表示 work, 值得一試.

    另外, 可試重裝 JDK, 跟著重開電腦, 再執行 installer_r10-windows .

  72. 其實我之前安裝完 JDK 後都有重開機
    但都不行
    沒想到最後竟然是被
    (當遇到”JDK not found”, 就按[Back] 再按 [Next],這樣它就會找到)
    給救了
    我只能說
    An@droid 大大,這真是太神奇了

    多謝您的分享

  73. Aron, 方法可行, 太好了.

    我們都是分享一下經驗, 大家一齊分享下! 🙂

  74. HI 我差不多到最後但說error:unknown host service 請問要怎麼解決?

  75. 1. 開啟手機內 USB 偵錯模式
    在手機 Home 畫面,按[Menu]鍵 > 設定 > 應用程式 > 開發,勾選 USB 偵錯

    沒有>開發……怎麼辦??

  76. 可以在 手機 “設定 > 關於手機” 內,移到最底, 連逐點按 “版本號碼” (Build Number) 七次,跟著就會有提示 “表示已成為開發人員”,”開發” 的選項應會展示出來。

  77. 試過的結果:

    出現一堆文字應該是 parameter error 所致 (出現 help 指令說明)

    新的指令格式應該改為如下 (注意要小寫):

    adb shell pm set-install-location 2

  78. 版主大大~我已經照BD大大的方法做了,打了新指令。
    可是他出現了
    Error:Could not access the Package Manager. Is the system running?
    請問~這是發生了甚麼問題嗎?

  79. (請看圖)在1裡面輸入2的地址,結果變以下那樣。我是要輸入3的位置嗎?

  80. 結束後出現 more than one device and emulator
    請問大大該如何解決

  81. 我到第9步驟 輸入 adb shell pm setInstallLocation 2 卻顯示 error: device not found 我還有試試 adb shell pm set-install-location 2 結果也一樣 請問大大這怎麼了 ?

發佈留言