1.5, 1.6 之前的版本可以參考上一篇文章, 這邊提供 2.1 的方法, 其實只要 GMS 有修改, 使用方式都會不太一樣, 不過原理大同小異. :-)
要在 Emulator 上跑 Android Market 有幾點要注意:
- 首先要有相對映版本的 Google Android Mobile Service, 通常網路上可以找得到 (GoogleBits-sdk7)
- Emulator 的 default partition size 似乎是 66MB, 但是後來的版本 system.img 都超過這個 size, 導致開啟後用 df 查看 free space 都是 0. 所以在啟動 emulator 時, 得加上 -partition-size 96 產生 free space 塞檔案.
- Emulator 不會啟動 Google check in service, 少了它便無法登錄 Google 帳號, 所以得先啟動 emulator, 透過 adb pull /system/build.prop 將設定檔案取回, 將 ro.config.nocheckin=yes 這行移除, 再依照後面提到的步驟放回去.
做好前述步驟, 便可開始進行下一階段工作.
- 切換至 avd 的目錄, 將 <sdk_dir>/platforms/android-7/images/system.img 複製過來, 印象中不這麼做資料無法寫入, 而且萬一做錯了得重新 Download 一份 SDK 才能救回, 所以保險起見還是分開使用.
- 啟動 Emulator, 別忘了加上 -partition-size 96 這個參數.
- 此時可以開啟 ddms 觀察是否啟動完全 (log 停止不再吐出來) 接著執行 adb remount 讓 system partition 可以寫入資料.
- 將先前修改的 build.prop 塞回去: adb push build.prop /system/
- 解開 Googlebits 那包壓縮檔, 將 system 目錄下列檔案塞入 Emulator 裡
- 將 SdkSetup.apk 移除, 這樣重開後就會直接執行 SetupWizard: adb shell rm /system/app/SdkSetup.apk
- 關閉 Emulator.
- 刪除 cache.img 與 userdata-qemu.img
- 重新啟動 Emulator, 大功告成 !
adb push etc/permissions/com.google.android.datamessaging.xml /system/etc/permissions/
adb push etc/permissions/com.google.android.gtalkservice.xml /system/etc/permissions/
adb push framework/com.google.android.gtalkservice.jar /system/framework/
adb push app/EnhancedGoogleSearchProvider.apk /system/app
adb push app/GoogleCheckin.apk /system/app
adb push app/GoogleApps.apk /system/app
adb push app/gtalkservice.apk /system/app
adb push app/SetupWizard.apk /system/app
adb push app/Vending.apk /system/app
adb push app/TalkProvider.apk /system/app
啟動後會出現 SetupWizard, 登入 Google 帳號後即可使用 Android Market ! :D
2010-06-17 Updated: 2.2 的作法似乎更簡單, 首先可以從 MoDaCo 的論壇上找一下 Froyo 的 ROM, 接下來步驟同前述, 第 5 步裡面塞的 apk 換成 GoogleServicesFramework.apk 與 Vending.apk 即可 ! 看來 dependency 沒這麼複雜囉..
This content is published under the Attribution-Noncommercial-Share Alike 3.0 Unported license.
Tags: android emulator, android market, eclair
I followed the steps and the emulator started without 3G turned on. That means the emulator is put on Airplane mode and cannot communicate with Android Market. Please help.
HI版主(這個才是對的..剛回錯文)
不好意思.我試了很多篇.都無法成功,
而我裝的是2.2…
而下面連結網站.好像也壞掉了..
能請版主再教學一次嗎…
謝謝你.
@loftysnake: please delete userdata-qemu.img in your .avd directory and try again, and which version did you use ?
@Nick: 當出發這篇文章應該 2.2 還沒正式 release, 現在應該可以用類似的方法達成, 我明天可以再試看看 2.2
2.1成試功了,真是謝謝您的分享.
別忘了加上 -partition-size 96 這個參數.
→請問要加在哪裡?(哪個檔案?)
希望可以有圖片教學,謝謝您。
我是要用Android Market2.2 希望有圖片教學
@柚子: 歐因為我是用 Mac, 所以執行 emulator 時加上參數即可. Windows XP 我得研究一下, 方法應該是一樣的, 晚點整理圖片.. :)
[...] 在 Android Emulator 中使用 Android Market 的方法, 看來不少人有這方面的需求. 先前發文時 Android 2.2 尚未正式 release, [...]