Zugriffsberechtigungen zu Service

  • Antworten:1
  • Bentwortet
Jan Roessler
  • Forum-Beiträge: 22

24.04.2012, 11:31:52 via Website

hi,
ich mal wieder.
Ich hab in meiner app cos_config einen Service, der von anderen Apps ( im test mit der cos_qotd) mit einem extra dafuer definierten Zugriffsrecht genutzt werden soll.
Der Zugriff klappt, aber ich sehe bei cos_config und cos_qotd nur das recht INTERNET in den settings im emulator.
Da sollte doch zumindest bei cos_qotd nur das extra definierte Zugriffsrecht erscheinen. tuts nicht, statt dessen ist dort INTERNET als recht.

hier das Manifest vom cos_config der den service liefert :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cos.client.config"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="cos.client.app"
android:sharedUserLabel="@string/app_id_label" >
<uses-permission
android:name="android.permission.INTERNET" />
<uses-permission
android:name="cos.service.ACCESS_COS_SERVICE" />
<uses-sdk
android:targetSdkVersion="8"
android:minSdkVersion="8" />
<permission
android:description="@string/permission_Description"
android:label="@string/permission_Label"
android:icon="@drawable/cos_service_launcher"
android:name="cos.service.ACCESS_COS_SERVICE"/>
<application
android:icon="@drawable/cos_config_launcher"
android:label="@string/app_name"
android:enabled="true">
<activity
android:name=".cos_config"
android:label="@string/app_name" >
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="cos_config_preferences" android:enabled="true"/>
<service
android:process=":cos_cloud_access"
android:icon="@drawable/cos_service_launcher"
android:label="@string/service_Label"
android:enabled="true"
android:permission="cos.service.ACCESS_COS_SERVICE"
android:name="cos.client.config.COSAccess">
</service>
</application>
</manifest>

und hier das com cos_qotd :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cos.client.qotd"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="cos.client.app"
android:sharedUserLabel="@string/app_id_label" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8"/>
<uses-permission
android:name="cos.service.ACCESS_COS_SERVICE" />

<application
android:icon="@drawable/cos_qotd_launcher"
android:label="@string/app_name" >
<activity
android:name=".Cos_qotdActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="Cos_qotdNewActivity"></activity>
<activity android:name="Cos_qotdSelectActivity"></activity>
</application>

</manifest>

die app cos_qotd soll ja nicht selber ins internet, sondern nur ueber den service im cos_config kommunizieren. ausserdem haett ich halt gern auch die sicherheitsabfrage fuer den zugriff auf den service, der agiert schliesslich mit zugangsdaten die der app cos_qotd verborgen bleiben sollen.

Antworten
Jan Roessler
  • Forum-Beiträge: 22

27.04.2012, 07:47:38 via Website

bin ein stueckchen weiter gekommen.

so wie es sich mir darstellt, werden die rechte, die eine app benoetigt, nicht nur aus den direkt im manifest angegebenen rechten abgeleitet, sondern auch aus den services die die app nutzen will.

ich hab, wie oben beschrieben im cos_config den service drin. dieser benoetigt INTERNET. also hat die app im manifest INTERNET definiert.
die zweite app cos_qotd hat im manifest nur COS_SERVICE drin stehen und kein INTERNET.

im emulator hat die app cos_qotd nach der installation INTERNET.
auf meinem SII hat sie nach der installation INTERNET und COS_SERVICE, der allerdings unter weitere-rechte.

somit scheint eine app die rechte der von ihr genutzten services mit zu erben. naja, gut so. haett ich nicht gedacht. war, zumindest fuer mich, etwas verwirrend. aber so ists sauber, denn wer weiss schon was sich hinter einem nichtssagenden service fuer zugangsrechte verbergen und man sonst einer app den zugang gewaehrt und sie damit dann rechte bekommt die man ihr nie geben wuerde.

Antworten