views:

194

answers:

2

I'm wondering whether the official google Android Marketplace application has access to some restricted functionality in the OS, or if it just uses the standard APIs available. Anyone up to date on this matter?

Update

Would it be possible to get an application signed by the manufacturer so that you can access these functionalities, or does google have to do this?

+1  A: 

The Android Market is part of the signed firmware of the device, and it is not an SDK application. Hence, it "has access to some restricted functionality in the OS". So, for example, while an SDK application can request to install an app, it can't uninstall an app.

CommonsWare
But Applications like the Astro Filemanager can unistall apps. Are they just firing the right intents to the market app or are they firmware signed to?
Janusz
Correct me if I'm wrong, but doesn't Astro launch the uninstall activity that is normally accessed via Settings/Applications/App Details/Uninstall and then the user confirms it?
Al
Yes, I should have been more clear: you can request things like install/uninstall from the SDK, but you can't *do* install/uninstall from the SDK. In particular, the Android Market has a way to install the app that does the permissions check up front, before the download -- that's not possible from the SDK.
CommonsWare
+4  A: 

Market does a few things that third party applications can't do -- most notable is being able to install apps without going through the permission screen (allowing it to verify permissions before downloading the app).

This is not a matter of signing -- Market is signed with Google's cert, not with a device's cert. The special things it does are features available to apps that are bundled as part of the system image. If Market were made available as a third party app, it would not be able to do these things. Likewise a third party app that is included by a manufacturer in their system image will have access to some additional functionality by virtue of being there.

Historically Market has also used a number of private APIs, which it could live with because it is always bundled with the device, so if one of those APIs changes the manufacturer will just need to make sure that they fix that to be able to run Market. Over time we have been cleaning that up to have it use many fewer private APIs.

hackbod
Thanks for your comments on the matter. :)
Chaoz