2013-02-15 12 views
19

新しい許可を与えるためにAndroid OSのソースコードを編集する方法が不思議でした。たとえば、デバイスに新しいセンサーが提供されている場合、BLUETOOTH権限がある場合、アプリケーションが新しいセンサーを使用するための適切な権限を作成し、アンドロイドROMで利用可能な新しい権限のマニフェストエントリを使用するアプリケーションレベルで作成できます。Android:AOSPソースコードで新しいシステム権限を作成します。

AOSPソースコードのOSレベルでどのように新しいパーミッションが作成されるのか誰かが知っていますか?

私は、新しいアクセス許可を追加するためにアンドロイドソースを変更した場合、アプリケーション開発の許可を使用するためにカスタムSDKをコンパイルする必要があります。そうしないと、カスタムアクセス許可を認識しないため、 ...

すべてのアイデア、考えが高く評価されています。フレームワーク/ベース/データは/ etc/platform.xmlで

答えて

22

あなたは、対応するGIDを使用して、新しく作成された権限を定義することができます。

<permissions> 

    <!-- ================================================================== --> 
    <!-- ================================================================== --> 
    <!-- ================================================================== --> 

    <!-- The following tags are associating low-level group IDs with 
     permission names. By specifying such a mapping, you are saying 
     that any application process granted the given permission will 
     also be running with the given group ID attached to its process, 
     so it can perform any filesystem (read, write, execute) operations 
     allowed for that group. --> 

    <permission name="android.permission.BLUETOOTH_ADMIN" > 
     <group gid="net_bt_admin" /> 
    </permission> 

    <permission name="android.permission.BLUETOOTH" > 
     <group gid="net_bt" /> 
    </permission> 

    <permission name="android.permission.BLUETOOTH_STACK" > 
     <group gid="net_bt_stack" /> 
    </permission> 

    <permission name="android.permission.NET_TUNNELING" > 
     <group gid="vpn" /> 
    </permission> 

    <permission name="android.permission.INTERNET" > 
     <group gid="inet" /> 
    </permission> 

    <permission name="android.permission.CAMERA" > 
     <group gid="camera" /> 
    </permission> 

    <permission name="android.permission.READ_LOGS" > 
     <group gid="log" /> 
    </permission> 

    ... 
</permission> 

その他の権限の定義次の図に示すように、Androidの中に許可の2種類が実際に存在するため、上記のファイルではありません。そのファイルには、Linuxカーネルによって強制されている権限のみが定義されています。等ACCESS_FINE_LOCATION、READ_CONTACTS、等

Permission Enforcement in Android

他の権限は、システムアプリケーション(パッケージ/.../のAndroidManifest.xml)でのAndroidManifest.xmlに定義されているフレームワーク(フレームワーク/ベース/コア/ RES/AndroidManifest .xml)。あなたはあなたの許可と関連するコードを追加した後

、IPCのイラストについてBuilding Instruction

+1

+1に応じてプロジェクトをコンパイルし、ビルドし、あなたはその1を自分で描くんでしたか、どこかでそれを見つけましたか? –

+3

私はそれを自分で描きました。 @ BjarkeFreund-ハンセン – StarPinkER

+0

@StarPinkERあなたはIPCがAndroidアプリにどのように行われるか、に関する詳細な情報を与えることができます。アプリケーションが実際に場所を尋ねると、例外がスローされない限り、アプリケーションに対応する権限があるかどうかを検証します。 –

関連する問題