Как обнаружить присутствие другого приложения?
Это теоретическая ситуация:
- Я пишу приложение, чтобы обнаружить присутствие другого на телефоне
- Путь к классу, имя, имена действий и т. Д. Целевого приложения были рандомизированы, я не могу просто проверить, есть ли оно (семантически то же самое, но синтаксически уникально)
- У меня есть root-доступ к телефону
- Приложение с открытым исходным кодом, и (кроме имени пакета и имени приложения) я знаю о нем все.
- Приложение не генерирует вывод журнала.
Я думал о том, как определить, присутствует ли на телефоне другое приложение (при условии, что оно время от времени запускается), возможны ли вообще следующие методы?
- Периодически ищите наличие определенных классов в памяти
- Поиск известных кусков скомпилированного кода в каждом установленном APK
- Определите работающее приложение, проверяя память устройства через определенные промежутки времени и ищите шаблоны использования, соответствующие приложению
Существуют ли другие способы обнаружения другого приложения в этих условиях?
1 ответ
Используйте PackageManager. У него есть метод, возвращающий информацию обо всех приложениях, установленных в системе: getInstalledPackages()
,