8

あいさつstackoverflow。

最近、AndroidフレームワークのBluetooth操作メカニズムを追跡しています。OPPを介してファイルを受信するときに、このパッチによって作成されるファイルタイプの制限があることに気付きました。

パッケージcom.android.bluetooth.oppでは、Constants.javaに固定ホワイトリストがあります

/**
 * The MIME type(s) of we could accept from other device.
 * This is in essence a "white list" of acceptable types.
 * Today, restricted to images, audio, video and certain text types.
 */
public static final String[] ACCEPTABLE_SHARE_INBOUND_TYPES = new String[] {
    /* ... some types such as images and music ... */
};

これは、BluetoothOppObexServerSession.javaで受け入れ可能なファイルタイプを制限します

        // Reject policy: anything outside the "white list" plus unspecified
        // MIME Types.
        if (!pre_reject
            && (mimeType == null || (!Constants.mimeTypeMatches(mimeType,
                    Constants.ACCEPTABLE_SHARE_INBOUND_TYPES)))) {
        if (D) Log.w(TAG, "mimeType is null or in unacceptable list, reject the transfer");
        pre_reject = true;
        obexResponse = ResponseCodes.OBEX_HTTP_UNSUPPORTED_TYPE;

この状況でMIMEタイプについて懸念する理由は何ですか?私の知る限り、実行可能ファイル(* .apk、*。so)はデバイスに害を及ぼす可能性があるため、これらのファイルをブロックしたいと思うかもしれません。ここでリストを設定する理由が特定のタイプをブロックしている場合、このパッチの直前にブラックリストの代わりにホワイトリストを使用するのはなぜですか?HTTPなどの他のBluetooth以外のプロトコルを介してファイルを送信する場合、同様の制限がありますか?

4

2 に答える 2

2

OBEXプロファイルは、交換されるコンテンツ形式のアプリケーションレベルの相互運用性を実現することが期待されています。たとえば、名刺を押したり引いたりした場合、ローカルアプリケーションは、名刺を適切な場所(連絡先の場所など)に表示できるように名刺の形式を理解し、ローカルの連絡先アプリに表示する形式を理解する必要があります。 。OPPは、電話帳(vCard)カレンダー、メッセージング、メモなどのコンテンツ形式を指定します。したがって、サーバーは、受信したオブジェクトに対して適切なアクションを実行できるように、クライアントが送信しようとしている特定のオブジェクト形式をサポートする必要があります。

より一般的なファイルの転送/交換には、FTPプロファイルを使用できます。

于 2011-06-29T16:46:12.413 に答える
0

私はあなたの質問に投票し、同時に非建設的であるとマークしました。質問は素晴らしいですが、間違った場所で質問されています。Androidバグトラッカーにバグ/提案として苦情を提出する必要があります。

あなたの質問に答えるために-それは、銃と彼自身の足の両方への彼のアクセスを制限することによって、ユーザーが自分の足を撃たないようにする傾向があります。たぶん、カスタムROMにはこの制限がありません。

于 2011-06-29T10:38:12.387 に答える