Цель
Я разрабатываю собственное приложение для внутреннего использования на мини-ПК Android с root-правами. Цель (между другими... так... многими... другими...) состоит в том, чтобы иметь возможность включать и выключать телевизор с помощью последовательного порта, встроенного в телевизор. Я использую для этого последовательный USB-кабель FTDI UART RS232.
Положение дел
Приложение работает прямо сейчас, используя библиотеку Android (serial-driver) Я могу общаться с телевизором, но проблема в том, что устройство запрашивает разрешения при каждой установке (а иногда, как ни странно, снова на одном и том же устройстве), поэтому его нужно улучшить.
Проблема
Поскольку по умолчанию на устройстве нет мыши или клавиатуры, когда это происходит, кто-то должен нажимать кнопки, а поскольку устройство обычно скрыто за экраном, это может сильно раздражать.
Мои два бита
Я чувствую, что эту проблему можно решить двумя способами, но я до сих пор не смог заставить их работать.
- Поскольку устройство рутировано, я могу изменить неизвестный (мне) параметр, который позволяет мне обойти запрос на разрешение. Для этого я попытался создать намеренный фильтр для USB-устройства и переписать интерфейс, управляющий этим поведением, оба безуспешно. Есть ли способ сделать эту версию Android более снисходительной в отношении разрешений?
- Я использую SuperSU внутри приложения по другим причинам, поэтому я могу использовать всю мощь оболочки. Используя это, я пытался вручную отправлять команды на устройство (/dev/bus/usb/00X/00Y), но это не сработало. Моя теория заключается в том, что это связано с разрешениями пути к устройству, но даже при выполнении нездорового chmod 777 я не могу заставить их работать.
Итак, это моя проблема прямо сейчас. Я надеюсь, что кто-то здесь может мне помочь.
Дополнительная информация
- Запуск: Пользовательский Android 4.4.2 (нельзя изменить)
- Должен быть выполним исключительно из apk (но он может использовать команды оболочки)
- У нас нет подписи производителя для установки в качестве системного приложения.
- Мы можем использовать только одно приложение, поэтому у меня не может быть другого, чтобы переместить его в /sys/apps, и я не знаю, может ли приложение сделать это с самим собой.
- использование Busybox stty -F /dev/.../ возвращает «Операция не разрешена»