Запустите службу с правами root или добавьте разрешения с правами root

В настоящее время я занимаюсь разработкой приложения, которое считывает SMS / электронные письма во время вождения. Многие пользователи желали поддержки WhatsApp / KakaoTalk.

Однако, поскольку не существует «официального» способа получения их сообщений, будет только три варианта, все из которых требуют root:

Более простой способ сканирования своей базы данных в заданном интервале.

Легко реализовать.Однако не эффективный аккумуляторТакже сообщения не зачитываются сразу.

Другой способ - запустить службу с правами root и зарегистрировать получателя, который прослушивает их push-уведомления. Это должно быть сделано с root, поскольку оба пакета требуют разрешения на основе подписи для получения их push-уведомлений.

Сложнее реализоватьЛучший пользовательский опыт

Еще одна вещь пришла мне на ум: можно ли вручную добавить разрешения для APK после установки? В этом случае я мог бы добавить разрешения c2dm для моего пакета.

Это сделало бы вещи очень легкимиТем не менее, я немного боюсь изменить разрешения моего приложения, так как это полностью противоречит принципу Android Sandbox.Тем не менее, если это будет возможно, дайте мне знать!

Проблема в том, какименно так запустить службу с правами root (возможно ли это на самом деле)?Я знаю, как запускать команды оболочки или двоичные файлы с правами root, но я понятия не имею, как запустить часть APK как root.

Кроме того, возможно ли будет интегрировать BroadcastReceiver в двоичный файл? У меня нет опыта работы с C / C ++, особенно в среде Android.

Вы можете помочь мне с этим? Благодарю.

редактировать: как я уже сказал в комментарии, яне хотите использовать AccesibilityService, так как он не соответствует моим потребностям (например, он даст мне «2 непрочитанных сообщения», если более одного непрочитано, а также не включает полное тело).

edit2: Просто чтобы уточнить вещи: я знаю, как запускать команды с root. Что мне нужно знать, так это как зарегистрировать Broadcastreceiver, который получает определенную широковещательную рассылку, которую «обычные» получатели не получают, поскольку сама Broadcast требует разрешения на основе подписи, которого у меня нет.

Ответы на вопрос(7)

Ваш ответ на вопрос