8

问候堆栈溢出。

最近在追踪Android框架中的蓝牙运行机制。我注意到这个补丁在通过 OPP 接收文件时会产生一些文件类型限制。

在 packagecom.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)传输文件时,是否有类似的限制?

4

2 回答 2

2

OBEX 配置文件有望实现正在交换的内容格式的应用级互操作性。例如,如果推/拉名片,则本地应用程序应了解名片格式,以便能够在适当的位置(例如联系人位置)显示名片,并应了解在其本地联系人应用程序中显示的格式. OPP 为电话簿 (vCard) 日历、消息传递、便笺等指定内容格式。因此,服务器应支持客户端尝试发送的特定对象格式,以便能够对接收到的对象采取适当的操作。

对于更通用的文件传输/交换,可以使用 FTP 配置文件。

于 2011-06-29T16:46:12.413 回答
0

我对您的问题投了赞成票,同时将其标记为非建设性的。这个问题很好,但问错了地方:您需要在 android bug tracker 中将您的投诉作为错误/建议提交。

回答您的问题 - 通过限制用户使用枪和自己的脚,不让用户在脚上开枪是一种趋势。也许自定义 ROM 不受此限制。

于 2011-06-29T10:38:12.387 回答