Extend BinderChannel to support cross-user communication and introduce BinderChannelCredentials (io.grpc.binder.*) in experimental.
- 主要言語
- Java
- スター
- 12.1k
- フォーク
- 4k
- 平均マージ
- 2日 17時間
- マージ済み PR(30日)
- 37
説明
BinderChannel, as specified in [gRFC L73](https://github.com/grpc/proposal/blob/master/L73-java-binderchannel.md) only supports the cross-process communication within the same Android user. However, some special Android applications need to do cross-user communication either using [Context.bindServiceAsUser](https://developer.android.com/reference/android/content/Context#bindServiceAsUser(android.content.Intent,%20android.content.ServiceConnection,%20int,%20android.os.UserHandle)) or [DevicePolicyManager.bindDeviceAdminServiceAsUser](https://developer.android.com/reference/android/app/admin/DevicePolicyManager#bindDeviceAdminServiceAsUser(android.content.ComponentName,%20android.content.Intent,%20android.content.ServiceConnection,%20int,%20android.os.UserHandle)).
TargetUserHandle is introduced in BinderChannel to enhance this use case. In the meanwhile BinderChannelCredentials is introduced in experimental stage to capture arbitrary arguments needed by DevicePolicyManager or other Android components to establish a binder connection.
コントリビューションガイド
調査の方向性
まず gRFC L73 と、Android の bindServiceAsUser API および bindDeviceAdminServiceAsUser API を読みます。次に BinderChannel と実験的な io.grpc.binder パッケージを見つけます。ユーザー間のターゲットと BinderChannelCredentials が、これらの binder 接続を確立するために必要な任意の引数をサポートすれば、作業は完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- android, java
- 領域
- mobile-dev
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 25/100