Permissions in the framework

  • Hi,


    Ich habe Android einen eigenen Systemservice hinzugefügt (der also system_process läuft (Process.myUid() == 1000)). In dem Service kann ich ja mittels Binder.getCallingUid() den aufrufenden Process bestimmen. Soweit so gut.
    Aber wenn ich in meinem Service einen anderen Service aufrufe (z.b. den LocationManager) gibts leider ne SecurityException, da der 2. Service wohl denkt er wäre von der App aufgerufen worden die meinen Service aufgerufen hat.


    Das sollte doch eigentlich nicht der Fall sein, und als Systemservice sollte ich jederzeit alle Permissions haben, oder?


    Zitat

    Zitat von programming4.us/Mobile/1304.aspx:
    Binder services are free to make other binder calls, but these calls always occur with the service’s own identity (UID and PID) and not the identity of the caller.


    Habe mal den Code meines zur Demonstration angehängt:



    Bin dankbar für jede Hilfe!
    PS: Hoffe ich bin im richtigen Forum.

  • Hmm, also das wäre mir neu, dass es nen Weg gibt, die Permissions zu umgehen. Du musst auf jeden Fall im Manifest deiner App eintragen, dass es die permission ACCESS_FINE_LOCATION nutzt, um GPS benutzen zu können. Am besten auch ACCESS_COARSE_LOCATION, dann kannst du auch die location über den network provider nutzen (praktisch in Gebäuden usw.).

  • Ja, für Services in Apps ist das klar, aber der Service läuft ja eben nicht in einem App sondern direkt im system_process (also auch kein Manifest) :)


    Gruß.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!