Language

AttributionSource クラス

定義

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

[Android.Runtime.Register("android/content/AttributionSource", ApiSince=31, DoNotGenerateAcw=true)]
public sealed class AttributionSource : Java.Lang.Object, Android.OS.IParcelable, IDisposable
[<Android.Runtime.Register("android/content/AttributionSource", ApiSince=31, DoNotGenerateAcw=true)>]
type AttributionSource = class
    inherit Object
    interface IParcelable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
継承
AttributionSource
属性
実装

注釈

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。 属性ソースを連結して、保護されたデータが複数のアプリケーションを通過するケースを表すことができます。 たとえば、アプリ A はアプリ B に連絡先を要求し、さらにアプリ B はアプリ C に連絡先を要求できます。 この場合、属性チェーンは A -> B -> C になり、データ フローは C -> B -> A になります。属性ソース メカニズムを使用する主な利点は 2 つあります。呼び出し元のアプリに代わって明示的なアクセス許可チェックを行わないようにする場合は、そのユーザーに代わってプライベート データにアクセスして返送します。呼び出し元アプリのアクセス許可を確認するとき、およびこれらのアクセス許可の背後にあるデータにアクセスするときに発生する二重データ アクセスの非難を避けます (実行時のアクセス許可の場合)。 また、呼び出し元を明示的に非難しない場合、データ アクセスは、単なるプロキシであった以前のアプリと比較して、アプリにカウントされます。

すべての Context には属性ソースがあり、 Context#getAttributionSource() を介してそれを取得できます。これは 1 つのチェーンです。 作業を別のアプリに属性付けしたり、アクセスするデータがフローするアプリのチェーンをより正確に属性付けしたり、 Context#createContext( ContextParams) 経由で、アクセスしている保護されたデータを次のアプリが受け取るための属性ソース AttributionSource.Builder#setNext( AttributionSource)指定したりできます。 この属性チェーンを作成すると、属性チェーン内のすべてのアプリが、データを解放する前にデータにアクセスするアクセス許可を持っているかどうかをデータソースが確認できるようになります。 また、データが機密性の高いアクセス許可 (危険なアクセス許可など) の背後にある場合は、このデータがアプリによって順番にアクセスされたことも、データソースによって適切に記録されます。 繰り返しますが、これは、別のアプリの代わりにデータにアクセスする場合に便利です。たとえば、マイクを使用する音声認識エンジンなど、呼び出し元のアプリに認識を提供できます。

android.app.AppOpsManager API を介して既に利用できるものであるため、検証を行わずに、自分や他のアプリの属性チェーンを作成できます。 これは、呼び出し元の属性ソースへのアクセス権がなく、 AttributionSource.Builder API を直接使用できるケースを処理するためにサポートされています。 ただし、データが (呼び出し元のデータにアクセスするよりも) 2 つ以上のアプリを通過する場合、属性コンテキストを作成するには、呼び出し元アプリのコンテキストの AttributionSource へのハンドルが必要です。 つまり、他のアプリが属性ソースを送信するための API を用意するか、呼び出し元の属性ソースをパイプするプラットフォーム API を使用する必要があります。

属性チェーン内のすべてのアプリが (上記の特別なケースを除いて) 参加しないと、属性チェーンを偽造することはできません。 信頼できる属性ソースを作成するには、参照するアプリによって明示的に作成された属性ソースを再帰的に指す属性コンテキストを作成する必要があります。

属性コンテキストを作成すると、属性チェーン内のアプリのすべてのアクセス許可がチェックされるため、チェーン内の一部のアプリがアクセス許可を持っていない可能性があるため、アクセス許可で保護された API にアクセスするときにセキュリティ例外が発生することを想定する必要があります。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

プロパティ

名前 説明
AttributionTag

アクセス許可で保護されたデータにアクセスするアプリの属性タグ。

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Creator

属性ソースのパーセル可能な作成者を取得します。

DeviceId

この属性ソースのデバイス ID を取得します。

Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

(継承元 JavaObject)
JniPeerMembers

このJava ピアのメンバーを呼び出すために使用される JNI メタデータを取得します。

Next

アクセス許可で保護されたデータを受け取る次のアプリ。

PackageName

アクセス許可で保護されたデータにアクセスしているパッケージ。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
Pid

アクセス許可で保護されたデータにアクセスしている PID。

ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Object)
ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Object)
Uid

アクセス許可で保護されたデータにアクセスしている UID。

メソッド

名前 説明
CheckCallingUid()

IPC を処理していて、呼び出し元が信頼できない場合は、呼び出し元が属性チェーンに自身を含めずに別のアプリからソースを渡すのを防ぐために、属性ソースが呼び出し元アプリ用のソースであるかどうかを検証する必要があります。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

(継承元 JavaObject)
DescribeContents()

この Parcelable インスタンスのマーシャリングされた表現に含まれる特殊なオブジェクトの種類について説明します。 たとえば、オブジェクトが writeToParcel(Parcel,int) の出力にファイル記述子を含める場合、このメソッドの戻り値にはCONTENTS_FILE_DESCRIPTOR ビットを含める必要があります。

Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

(継承元 JavaObject)
EnforceCallingUid()

IPC を処理していて、呼び出し元が信頼できない場合は、呼び出し元が属性チェーンに自身を含めずに別のアプリからソースを渡すのを防ぐために、属性ソースが呼び出し元アプリ用のソースであるかどうかを検証する必要があります。

Equals(Object)

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
IsTrusted(Context)

この属性ソースが信頼できるかどうかを確認します。

JavaFinalize()
古い.

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
MyAttributionSource()

呼び出し元プロセス全体を表すジェネリック AttributionSource を返します。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

(継承元 JavaObject)
ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
WriteToParcel(Parcel, ParcelableWriteFlags)

このオブジェクトをパーセルにフラット化します。

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

(継承元 JavaObject)
IJavaPeerable.Finalized()

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

(継承元 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

このクラスは、アクセス許可で保護されたデータへのアクセスを属性化するソースを表します。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象