iCTF 2011: Android Market Challenge
Not all applications on the Android market can be installed by all Android devices. More specifically, each Android device only allows the user to choose from the subset of applications that are considered suitable to be installed on that device. For example, if you visit the Android Market with your browser, you get a list of over 200 applications in the communications (top free) category. Using the Market on a Nexus One lists more then 100 Applications for that very same category. However, using the Android Market on the Android SDK simulator (API level 10, platform 2.3.3) only lists two applications. Give their names in alphabetical order separated by a comma.
In this challenge we are tasked with running the Android Market on the SDK simulator. First download, install and setup the Android SDK simulator like you would normally, making sure to create an AVD running on the specified API level 10 and version 2.3.3
Next navigate to …….\android-sdk_r08-windows\android-sdk-windows\platforms\android-10\images
and copy system.img
and paste it to C:\Users\Username\.android\avd\Emulator’s name.avd
(Image taken down, it used to be at; http://s2.torbit.com/img/b81e1e28f8a417e78662c792c2468632de63c5fb-12-5-2010-3-09-00-PM.png)
Download three files: Vending.apk, GoogleServicesFramework.apk and ADB.zip(unzip the file after downloaded). After that, put all these files into …….\android-sdk_r08-windows\android-sdk-windows\tools
, we will need them later. (In Android 2.3 SDK, adb files have been removed so that’s why we need them.)
Open a command prompt and navigate to …….\android-sdk_r08-windows\android-sdk-windows\tools
Enter emulator –avd youremulatorsnamehere –partition-size 100
This will open up your emulator, opening it from the manager will not work
Launch another command prompt window, switch to …….\android-sdk_r08-windows\android-sdk-windows\tools
, enter: adb -s emulator-5554 shell
(5554 is the serial for your emulator, it may not be the same)
After that, type **mount **and hit Enter again. You will see something like below, and look for the line: /dev/block/mtdblock0 /system yaffs2 ro 00
.
(Image taken down, it used to be at; http://s3.torbit.com/img/2c2d07c583609aed544cd21210c6220a38ba9e86-12-7-2010-1-48-21-AM.png)
Now, type in: mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
and hit Enter. This will remount the /system
in read-write mode. Because we will copy some files to /system/app
later, we must set read-write permission to that directory. To do it, type the following: chmod 777 /system/app
, hit Enter. After that, you need to exit. Type exit, hit Enter again. The whole step will look like this:
Now we will be copying the market apk and the google services apk. Enter adb -s emulator-5554 push Vending.apk /system/app/.
Similar to that, to copy the next file, Enter: adb -s emulator-5554 push GoogleServicesFramework.apk /system/app/
We now need to SdkSetup.apk
from /system/app
(if it is not removed, the SDK will be restore in next session). In the second command prompt window, Enter: adb shell rm /system/app/SdkSetup.apk
Now we close the emulator. Go to C:\Users\Username\.android\avd\Emulator’s name.avd
and delete these two files:userdata-qemu.img
and cache.img
Now you can launch you emulator in the traditional way. Open the emulator, run the market app, navigate to the top free category in communications and get your key!