Запустите службу с правами 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 требует разрешения на основе подписи, которого у меня нет.