Почему Android так строго ограничивает допустимые типы файлов при получении через Bluetooth OPP? - PullRequest
8 голосов
/ 29 июня 2011

привет стека переполнения.

В последнее время я отслеживаю механизм работы Bluetooth в платформе Android. Я заметил, что есть некоторые ограничения типа файлов, которые делает этот патч при получении файлов через 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), поскольку эти файлы могут повредить наше устройство. Если блокировка некоторых определенных типов является причиной, по которой мы устанавливаем список здесь, зачем использовать белый список вместо черного списка непосредственно перед этим патчем? Существуют ли аналогичные ограничения при передаче файлов по другому протоколу, кроме Bluetooth, например HTTP?

Ответы [ 2 ]

2 голосов
/ 29 июня 2011

Профиль OBEX, как ожидается, достигнет функциональной совместимости на уровне приложений для форматов контента, которыми обмениваются.Например, если визитная карточка выдвинута / вытянута, локальное приложение должно понимать формат визитной карточки, чтобы иметь возможность отображать визитную карточку в соответствующем месте (например, расположение контактов), и должно понимать формат для отображения ее в приложении локальных контактов.,OPP определяет форматы содержимого для телефонных книг (vCards), календаря, сообщений, заметок и т. Д. Таким образом, сервер должен поддерживать определенный формат объекта, который клиент пытается отправить, чтобы иметь возможность предпринять соответствующие действия с полученным объектом.

Для более общей передачи / обмена файлами можно использовать профиль FTP.

0 голосов
/ 29 июня 2011

Я проголосовал за ваш вопрос и пометил его как неконструктивный одновременно. Вопрос отличный, но он задан не в том месте: вам нужно подать жалобу в виде сообщения об ошибке / предложения в Android Tracker.

Чтобы ответить на ваш вопрос - это тенденция не позволять пользователю выстрелить себе в ногу, ограничивая его доступ к пистолету и к своей собственной ноге. Возможно, пользовательские ПЗУ свободны от этого ограничения.

...