Как работает подложка Android?

В мире Android есть два популярных фреймворка для внедрения/угона/перехвата:

Xposed и основа Android

Механизм Xposed описан в руководстве по разработке.

Автор Android Substrate сравнил две платформы в FAQ и здесь, но он не сказал как это работает.

Мне просто интересно:

Как работает Android Substrate?


person xmllmx    schedule 10.12.2014    source источник


Ответы (2)


Джей Фриман (Саурик) в этом посте(http://www.cydiasubstrate.com/id/34058d37-3198-414f-a696-73e97e0a80db/) рассказывает о различиях в xposed и субстрате, а также рассказывает о том, как они различаются в том, как они работают, это отличное чтение.

person Programming4life    schedule 04.03.2015

Хотя сходство между двумя фреймворками велико, фактическая реализация процессов перехвата и т. д. достаточно различается, чтобы обе фреймворки работали параллельно.

Тем не менее, самые большие преимущества, которые я вижу для Substrate по сравнению с XPosed, заключаются в том, что XPosed удаляет модель безопасности Java, в то время как Substrate сохраняет ее, а также возможность дождаться загрузки класса перед подключением метода, как описано в следующей цитате из ответа @xmllmx относительно ортогональности;

Чтобы сделать это проще, Xposed предоставляет набор помощников для распространенных случаев использования: вы можете перехватывать, когда запускается виртуальная машина, когда Zygote берет на себя управление, когда загружается определенный пакет или когда выполняется приложение командной строки. Вам нужно знать, какой из них использовать, и до сих пор неясно, как вы будете перехватывать класс, загруженный с помощью динамического загрузчика классов, созданного во время выполнения (например, против загруженного кода).

Вместо этого Substrate избавляется от всего этого благодаря MS.hookClassLoad, предоставляемому API, который позволяет вам в любое время ждать загрузки определенных классов из любого загрузчика классов. Это позволяет вам писать ловушки таким образом, чтобы они были менее чувствительны к изменениям, менее подвержены простым ошибкам и менее ограничены тем, как разработчик целевого приложения решил загрузить код своей программы.

В заключение, на мой взгляд, в любом случае, обе структуры очень похожи и оба являются жизнеспособными вариантами для достижения одной и той же цели. Единственный важный взвешивающий факт, который их разделяет, - это временные рамки между тем, когда каждый из них был выпущен. Там, где XPosed существует гораздо дольше, он был опробован, протестирован и испытан в промежутке между выпуском XPosed и выпуском Cydia Substrate для Android, который Джей Фриман (Саурик) открыто признает

Независимо от этого, Cydia Substrate — мощная и чрезвычайно жизнеспособная альтернатива XPosed. Кроме того, вам не нужно ограничиваться разработкой только для одного из этих фреймворков, потому что (как упоминалось ранее) оба фреймворка могут быть установлены на вашем устройстве без конфликтов, поэтому разработка для обоих или просто попытка их использования никоим образом не помешают вам от использования установленных в настоящее время модулей, пакетов или расширений XPosed.

person guyver4mk    schedule 10.04.2015