Yeah, sorry, I just noticed the ability to get the Uid in
IBinder.Stub.  I didn't realize this at first since my interface calls
functions on the Service, and I was checking the service for the
permissions.

*sigh*

On Aug 18, 12:53 pm, Dianne Hackborn <[email protected]> wrote:
> You -can't- do this in onBind(), since for performance reasons the onBind()
> is called only once for each intent, so we don't need to do multiple IPC
> hops for each request (into the system and then into the service).
>
> And if what you are interested in protecting is an interface returned by
> onBind()...  well then, you -have- an interface, which you can do all kinds
> of your own protecting by doing checks against incoming uids.  For example,
> you could have 10 methods on the interface that use
> Context.checkCallingPermission() to allow access to each of them based on
> different permissions.  Or you could have one method that services as a
> factory, returning another interface, and in the factory method you do your
> permission check which will thus provide full access to the secondary
> interface.
>
> For content provider, you can do uid checks in any of the incoming calls.
> You can also protected the provider in the manifest with different read and
> write permissions, and in Donut you will be able to specify other
> permissions in the manifest for specific paths.
>
> I don't think we need a feature request. :)
>
> On Tue, Aug 18, 2009 at 12:37 PM, Jonathan Herriott <[email protected]>wrote:
>
>
>
>
>
>
>
> > Hi Dianne,
>
> > Should I bother requesting this in b.android.com, since I would like
> > to sandbox data for each application that connects to my service.  As
> > far as I can tell, there seems to be no way when receiving an intent
> > in onBind() that will inform me of the uid of the calling
> > application.  Also, I would also like to be able to do the same thing
> > in a ContentProvider, but again, there seems to be no function to
> > obtain this information.
>
> > Thanks,
> > Jonathan Herriott
>
> > On Aug 18, 12:16 pm, Dianne Hackborn <[email protected]> wrote:
> > > There isn't any way to do this for a service, though you can find out the
> > > calling intent for an activity when the caller is waiting for a result.
> > > Most security is enforced in the system either by associating permissions
> > > with components in the manifest, or checking the uid of incoming IPC
> > calls
> > > to services and content providers.
>
> > > On Tue, Aug 18, 2009 at 11:03 AM, Jonathan Herriott <[email protected]
> > >wrote:
>
> > > > I was wondering if there is a way to determine who passed an intent to
> > > > my application.  For example, I have a service, that I want to act
> > > > differently depending on who passed the intent (for security
> > > > reasons).  I'm trying to sandbox each calling application, so they
> > > > only have access to their data stored in my application.
>
> > > > For it to be secure, I cannot trust any application to be truthful
> > > > about the identifying data it is passing into my service.  Therefore,
> > > > I need some system way of identifying who sent the intent in a way
> > > > that the calling application cannot change that information.  I don't
> > > > know if it is possible, but I can't find anything in the Intent class,
> > > > and I was wondering if there may be another structure which does what
> > > > I want it to.  If it is not possible, I would like to get some type of
> > > > mechanism to do this in the roadmap.
>
> > > > Thanks,
> > > > Jonathan Herriott
>
> > > --
> > > Dianne Hackborn
> > > Android framework engineer
> > > [email protected]
>
> > > Note: please don't send private questions to me, as I don't have time to
> > > provide private support, and so won't reply to such e-mails.  All such
> > > questions should be posted on public forums, where I and others can see
> > and
> > > answer them.
>
> --
> Dianne Hackborn
> Android framework engineer
> [email protected]
>
> Note: please don't send private questions to me, as I don't have time to
> provide private support, and so won't reply to such e-mails.  All such
> questions should be posted on public forums, where I and others can see and
> answer them.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to