Android Market sucks

Search This thread

graphic914

Member
Dec 27, 2008
37
0
Upstate, NY
I have the sprint vogue that I ran Android 1.5 from my sd card with sprint network. I updated to eclair on the sd card but find my phone says T-Mobile, don't think its a big deal.When I was running 1.5 I was able to find apps like pandora to down load, know on t-mobile network and eclair a lot of apps are missing? Is their a way to unlock the market.
 

jnadke

Senior Member
Jul 17, 2008
831
165
It's a problem with the Android SDK.

Starting with 1.6, Google introduced screen sizes: Small, Medium, and Large. Our devices have Small Screens (along with the HTC Tattoo). The G1/Dream has a Medium screen, and the Droid/Nexus a Large screen.

The problem is the SDK defaults to Medium and Large screens. It's up to the application developer to test the application for Small screens and proactively add the indicator for Small screen support.

Most developers never bother to indicate the app can run on Small screens, so it gets excluded from your view.

I'm not sure if the small screen thing is linked to the /data or your Google user account. If I knew which, I'd figure out some way to spoof it, so we can get the full market on small screens. If it's on the /data somewhere, then that's a much easier fix.

The fact that clearing your /data and booting up a 480x320 fixes it, seems to indicate it's a value in the /data. It'd be interesting to do a dump of two /data directories with only the market resolution changed and see how they differ on a binary level. Then perhaps we can add a patch to the menu of NoMoRootfs (or a patch that's applied every bootup... or lock down the file that's modified).

If it's on the account, then either you'd have to intercept the Market App's data packet that indicates screen size and modify it proactively, or you'd have to change parts of the SDK to report the screen size as larger than it really is (this would be hard to do because apps use that interface too... you'd have to be able to detect if the request is coming from the Market App).
 
Last edited:

myn

Retired Senior Recognized Developer
Nov 15, 2007
2,679
3,985
It's a problem with the Android SDK.

Starting with 1.6, Google introduced screen sizes: Small, Medium, and Large. Our devices have Small Screens (along with the HTC Tattoo). The G1/Dream has a Medium screen, and the Droid/Nexus a Large screen.

The problem is the SDK defaults to Medium and Large screens. It's up to the application developer to test the application for Small screens and proactively add the indicator for Small screen support.

Most developers never bother to indicate the app can run on Small screens, so it gets excluded from your view.

I'm not sure if the small screen thing is linked to the /data or your Google user account. If I knew which, I'd figure out some way to spoof it, so we can get the full market on small screens. If it's on the /data somewhere, then that's a much easier fix.

The fact that clearing your /data and booting up a 480x320 fixes it, seems to indicate it's a value in the /data. It'd be interesting to do a dump of two /data directories with only the market resolution changed and see how they differ on a binary level. Then perhaps we can add a patch to the menu of NoMoRootfs (or a patch that's applied every bootup... or lock down the file that's modified).

If it's on the account, then either you'd have to intercept the Market App's data packet that indicates screen size and modify it proactively, or you'd have to change parts of the SDK to report the screen size as larger than it really is (this would be hard to do because apps use that interface too... you'd have to be able to detect if the request is coming from the Market App).


That is a great idea.

Do you have the capacity to perform the differential on the two directories?

I have deodexed the 1.6 Vending.apk and can post the source for everyone to review. I think the more eyes on this the better.

The only reason I run 320x480 is because I want a full market 100% of the time.
 

jnadke

Senior Member
Jul 17, 2008
831
165
That is a great idea.

Do you have the capacity to perform the differential on the two directories?

I have deodexed the 1.6 Vending.apk and can post the source for everyone to review. I think the more eyes on this the better.

The only reason I run 320x480 is because I want a full market 100% of the time.

Yeah, I can do it, though it'd be easier to do it on two data.img files (might have to go back to WinMobile for that). Or I guess I could flash the kernel and wipe my data and export the result each time to a binary file. I'd still be interested in seeing the Vending.apk.

I already know where the Market apk is getting its info from. In android.utils there's a class called DisplayMetrics. The Market apk is likely getting its info from there. It'd be possible to spoof it by recompiling the source with a hardcoded value, but that'd affect applications as well. It'd be much harder to do it for only the Market/Vending apk.

The thing I'm interested in, is that obviously if the "boot up at one resolution, switch back" trick works, then it's not sending the resolution to the server every time. This means it has to be storing the data, or a hash of the data, somewhere.

This guy has a fascinating website on similar subjects:
http://strazzere.com/blog/

There's also a way to use the Market from the emulator:
http://www.anddev.org/viewtopic.php?p=28991

Perhaps I can start there and see if I can reproduce the problem, then produce the solution in a controlled environment.
 
Last edited:

myn

Retired Senior Recognized Developer
Nov 15, 2007
2,679
3,985
Started Community Market Project here
 
Last edited: