วิธีการลง Android Market ใน Android Simulator

เทคนิคนี้คงเป็นเทคนิคที่ใครหลายๆ คนรอกันมานาน หลังจากเมื่อคราวที่แล้ว ThaiDroidUpdate เคยได้นำเสนอเกี่ยวกับวิธีการใช้งาน Android Simulator บน PC กันไปแล้ว แต่ทว่าตัว Simulator ที่มีมาให้นั้นกลับไม่มี Android Market ไว้สำหรับใช้ลง Apps ของ Android ทำให้คนที่อยากจะลองใช้ Android นั้น ไม่สามารถที่จะทดสอบอะไรได้มากเท่าที่ควร (แต่ความจริงตัว SDK นี้ เค้าไม่ได้มีไว้สำหรับให้คนทั่วไปใช้อยู่แล้วครับ เค้าเอาไว้ให้ฝ่ายพัฒนา Apps ใช้มากกว่า)

แต่ในที่สุด หลังจากเห็นข่าวออกมาว่ามีคนสามารถทำให้ Simulator ของ Android สามารถลง Android Market ได้แล้ว ทำให้ความหวังในการเล่น Apps ของ Android นั้นส่องประกายขึ้นมาเลยทีเดียว เพราะว่าหากว่าลง Android Market ได้ นั้นก็หมายความว่าสามารถลง Apps ต่างๆ เพิ่มได้นั่นเอง แต่ Apps ที่สามารถเล่นได้ก็ยังเล่นได้ยังไม่ครบทุกตัวนะครับ อย่าง  Angry Bird บน PC ที่หลายๆ คนหวังไว้กันนั้นก็ยังไม่สามารถเล่นได้อยู่ดี เพราะติดปัญหาเรื่องตัว SDK ยังไม่สามารถรองรับความสามารถบางอย่างที่ Smartphone ทั่วไปมีได้ แต่ผมคิดว่าอาจจะต้องเพิ่มความสามารถหรือจูนอะไรบางอย่างก่อน จึงจะสามารถทำให้ Emulator ตัวนี้ใช้เล่น Angry Bird ได้ครับ รอฟังข่าวดีต่อไปก็แล้วกัน

เรามาเริ่มลง Android Market ใน Simulator กันเลยดีกว่า

1. เริ่มแรกก็ต้องจำลองตัว Android Simulator กันก่อนเลย โดยดูวิธีการจาก Link นี้ได้เลยครับ

2. เข้าไปที่ Folder [ตำแหน่งที่เราลง sdk ไว้]platformsandroid-8images เช่น c:android-sdk-windowsplatformsandroid-8images แล้วให้ Copy File ที่ชื่อว่า system.img ไปไว้ที่ [ตำแหน่ง user profile ของเรา].androidavd[ชื่อของตัวจำลอง Android ที่เราตั้งไว้].avd เช่น C:UsersKaZeKiM.androidavdDesire.avd

3. เริ่มต้นใช้งาน Emulator อีกครั้ง โดยกำหนดขนาดของ Partition ด้วย เปิด command prompt ขึ้นมาโดยเข้าไปที่ Start -> run พิมพ์ cmd แล้ว Enter หลังจากนั้นให้เข้าไปที่ Folder [ที่อยู่ของ sdk]/tools โดยการใช้คำสั่ง cd เช่น  ในที่นี้ผมลง sdk ไว้ที่  C:android-sdk-windowstools ก็ให้ใช้คำสั่ง

cd

cd android-sdk-windowstools -> เพื่อเข้าไปยังที่อยู่ของตัวโปรแกรมที่ต้องการ run

พิมพ์คำสั่ง

emulator -avd Desire -partition-size 100

แล้วตัว Emulator ก็จะแสดงขึ้นมา

4. เปิดหน้าจอ cmd ใหม่ ให้เข้าไปที่ Folder tools เหมือนในข้อ 3 แล้วให้พิมพ์คำสั่ง
adb.exe pull /system/build.prop

แล้วระบบจะทำการ copy file build.prop ไปยังตำแหน่งที่เราอยู่ปัจจุบัน ([ที่อยู่ของ sdk]/tools)

หลังจากนั้นให้เปิด file  build.prop ด้วย Notepad หรือ text editor ที่เราถนัด ให้แก้บรรทัดนี้ให้เป็นอย่างนี้

ro.config.nocheckin=yes

* หากเปลี่ยนแล้วก็ไม่ต้องยุ่งอะไรอีกและปิดตัว Editor ได้เลย

5. ขั้นตอนนี้อาจจะยุ่งยากซักหน่อย เพราะต้องจับยัดไฟล์ build.prop กลับเข้าไปในตัว Simulator เหมือนเดิม ซึ่งเราจะต้องทำการเชื่อมต่อตัวพื้นที่ใน Simulator เข้ากับเครื่อง Windows ของเราซะก่อน แล้วทำการอนุญาตให้เราสามารถเขียนไฟล์ลงใน Emulator ได้ (ปกติจะทำไม่ได้) ขั้นตอนการทำก็ทำตามนี้เลยครับ (ขั้นตอนนี้หากในขั้นตอนที่ 4 ไม่ได้แก้อะไรก็สามารถข้ามไปต่อขั้นตอนที่ 6 ได้เลยครับ)

ที่ Path Tools เหมือนเดิมพิมพ์คำสั่งตามนี้

adb shell

su

แล้วก็พิมพ์คำสั่งนี้เพื่อหาดู ว่า /system อยู่ที่ Path ไหน

mount
อันนี้จะเป็นตัวอย่างจากเครื่องของผม จะเห็นว่า Path ของ /system อยู่ที่ /dev/block/mtdblock0
mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
none /acct cgroup rw,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock0 /system yaffs2 ro 0 0
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block/vold/179:0 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,g
id=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-
1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:0 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,uid=1
000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso
8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,size=0k,mode=000 0 0

# susu# mountmountrootfs / rootfs ro 0 0tmpfs /dev tmpfs rw,mode=755 0 0devpts /dev/pts devpts rw,mode=600 0 0proc /proc proc rw 0 0sysfs /sys sysfs rw 0 0none /acct cgroup rw,cpuacct 0 0tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0none /dev/cpuctl cgroup rw,cpu 0 0/dev/block/mtdblock0 /system yaffs2 ro 0 0/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0/dev/block/vold/179:0 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0/dev/block/vold/179:0 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0tmpfs /mnt/sdcard/.android_secure tmpfs ro,size=0k,mode=000 0 0

จากนั้นก็ทำการเชื่อมต่อ /system ใหม่ โดยใช้คำสั่งนี้

mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
exit
exit

หลังจากนั้นเราก็สามารถที่จะเขียน File ลงใน /systemได้แล้ว ก็ให้ทำการส่งไฟล์ build.prop กลับเข้าไปได้เลย

adb push build.prop /system/

เท่านี้ไฟล์ก็ถูกส่งกลับเข้า Simulator เรียบร้อยแล้วครับ

6. ขั้นตอนนี้จะเป็นขั้นตอนการลง Android Market ในตัว Emulator ซึ่งเราจะต้องทำการ Download File มาเก็บไว้ 2 ตัวด้วยกัน

1. Vending.apk โหลดได้ที่นี่ http://www.4shared.com/file/ztEcNwzJ/Vending.html
2. GoogleServicesFramework.apk โหลดได้ที่นี่ http://www.4shared.com/file/_VR-2zix/GoogleServicesFramework.html

เมื่อ Download เสร็จแล้วก็ copy ทั้ง 2 ไฟล์ไปไว้ภายใต้ folder C:android-sdk-windowstools

จากนั้นให้กลับไปที่ Command Prompt ที่เปิดทิ้งไว้และทำการส่งทั้งสอง File เข้าไปใน Simulator ด้วยคำสั่งดังนี้

adb push Vending.apk /system/app/

adb push GoogleServicesFramework.apk /system/app/

และทำการลบไฟล์ SdkSetup.apk ออกจากเครื่องเพื่อป้องกันไม่ให้ ตัว Simulator ย้อนกลับไปเป็นเหมือนเดิมก่อนที่จะแก้ได้

adb shell rm /system/app/SdkSetup.apk

8. ทำการปิด Simulator และทำการลบไฟล์ userdata.img, userdata-qemu.img และ cache.img จาก C:UsersKaZeKiM.androidavdDesire.avd และทำการเปิด Emulator อีกครั้งหนึ่งจาก SDK Manager ได้เลย แค่นี้แหละตัว Android Market ก็พร้อมสำหรับการใช้งานใน Simulator แล้ว!!

และนี่ก็คือหน้าตาของ Android Market ที่ลงใน Simulator ที่เอามาลงใน Simulator เรียบร้อยแล้ว แต่ดูเหมือนว่าระบบการ Search จะไม่ค่อยดีเท่าไหร่ หาอะไรก็ไม่ค่อยจะเจอเจอเลย แต่พอกดไปกดมาก็ อ้าว!! เอ๊ะ นี่เกมอะไรเอ่ย??

เมื่อทดสอบลง Apps หลายๆ ตัวแล้วพบว่า Apps ส่วนใหญ่ก็สามารถใช้งานได้ตามปกติ แต่อย่างที่บอกไป เมื่อลองลง Apps บางตัวอย่าง Angry Bird ดูแล้ว ตัวเกมสามารถลงได้ปกติดี แต่ปรากฎว่าไม่สามารถเล่นไม่ได้ครับ คงตามปัญหาเรื่อง Software บางอย่างบน Simulator ที่ยังไม่รองรับ เหมือน Toshiba AS100 ของผมเลย ที่เล่น Angry Bird ไม่ได้ เปิดขึ้นมาแล้วจะจอดำ คงต้องหา Patch ที่จะทำให้ Angry Bird เล่นบน Simulator ตัวนี้ได้ก่อน ความฝันของใครหลายๆ คนที่อยากจะเล่น Angry Bird บน PC ถึงจะกลายเป็นจริงได้ซะที รอติดตามข่าวกันต่อไปก็แล้วกันครับ

Ref: karuppuswamy, varunkumar