Как обнаружить присутствие другого приложения?

Это теоретическая ситуация:

  • Я пишу приложение, чтобы обнаружить присутствие другого на телефоне
  • Путь к классу, имя, имена действий и т. Д. Целевого приложения были рандомизированы, я не могу просто проверить, есть ли оно (семантически то же самое, но синтаксически уникально)
  • У меня есть root-доступ к телефону
  • Приложение с открытым исходным кодом, и (кроме имени пакета и имени приложения) я знаю о нем все.
  • Приложение не генерирует вывод журнала.

Я думал о том, как определить, присутствует ли на телефоне другое приложение (при условии, что оно время от времени запускается), возможны ли вообще следующие методы?

  • Периодически ищите наличие определенных классов в памяти
  • Поиск известных кусков скомпилированного кода в каждом установленном APK
  • Определите работающее приложение, проверяя память устройства через определенные промежутки времени и ищите шаблоны использования, соответствующие приложению

Существуют ли другие способы обнаружения другого приложения в этих условиях?

1 ответ

Используйте PackageManager. У него есть метод, возвращающий информацию обо всех приложениях, установленных в системе: getInstalledPackages(),

Другие вопросы по тегам