2014-12-10 4 views
0

В Android мире есть две популярные рамки инъекции/Hijack/зацепляющие:Как работает Android-субстрат?

Xposed и Android Субстрат

механизм В Экспоузд описывается в a development tutorial.

Автор Android Подстилка сравнили два остова in FAQ и here, но он не сказал, как это работает.

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

Как работает Android Субстрат?

ответ

0

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

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

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

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

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

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

Смежные вопросы