Download Appteka (works without ads)

Appteka is a community-driven, free Android apps market

Shizuku

Shizuku

40 downloads

Uploaded by
alnajm
Version
12.6.2.r790.907776f (build 790) 
Size
3.2 MiB
Publish Date
2022-05-08
Category
Tools
Package
moe.shizuku.privileged.api
Minimum OS
Android 6.0
SHA1
f0059a145932cb59f28bd5c878b550b0fe86ae06
Description
При разработке приложений, требующих root, наиболее распространенным методом является выполнение некоторых команд в оболочке su. Например, в приложении используется команда: pm enable/disable для включения/выключения компонентов. Этот метод имеет очень большие недостатки: Крайне медленный (создание нескольких процессов). Требуется обработка текстов (очень ненадежно). Возможность ограничена доступными командами, даже, если adb имеет достаточно прав для запуска приложения, но надо учти, что, если ты отказываешься его запускать через ADB, то потребуются привилегии root. Shizuku использует совершенно другой способ. Самая важная функция, которую предоставляет Shizuku - это быть чем-то вроде посредника, принимающего запросы от приложения, отправляющего их на сервер системы и отсылающего обратно результаты. Для приложения это почти идентично использованию системных API напрямую. Но это намного быстрее, поскольку оно подключается к системе напрямую. Несколько приложений уже используют Shizuku. Если вы хотите интегрировать его в свое, загляните в руководство для разработчиков. Для пользователей также есть руководство. А также, хотел бы напомнить факт того, насколько она нужна и пользуется приоритетом у некоторого ПО, типо: популярного установщика APKS-файлов — SAI, DarQ, SkyDroid и вообще, во многих других программах. Полноценная альтернатива root-правам! ◇ Справочная информация ◇ При разработке приложений, требующих root, наиболее распространенным методом является выполнение некоторых команд в оболочке su. Например, есть приложение, которое использует команду pm enable/disable для включения/выключения компонентов. Этот метод имеет очень большие недостатки: Крайне медленный (создание нескольких процессов). Требуется обработка текстов (Очень ненадежно) Возможность ограничена доступными командами Даже если ADB имеет достаточные разрешения, для запуска приложения требуются привилегии root. Shizuku использует совершенно другой способ. Смотрите подробное описание ниже. Руководство пользователя и загрузка https://shizuku.rikka.app/ Как работает Shizuku? Во-первых, мы должны поговорить о том, как приложение использует системные API. Например, если приложение хочет получить установленные приложения, мы все знаем, что должны использовать PackageManager#getInstalledPackages(). На самом деле это процесс межпроцессного взаимодействия (IPC) процесса приложения и процесса системного сервера, просто фреймворк Android сделал внутреннюю работу за нас. Android использует binder для выполнения этого типа IPC. Binder позволяет серверной стороне узнать uid и pid клиентской стороны, чтобы системный сервер мог проверить, есть ли у приложения разрешение на выполнение операции. Обычно, если существует "менеджер" (например, PackageManager) для приложений, который они могут использовать, в процессе сервера системы должна быть "служба" (например, PackageManagerService). Мы можем просто считать, что если приложение имеет биндер "сервиса", то оно может взаимодействовать с "сервисом". При запуске процесс приложения получает биндеры системных сервисов. Shizuku рекомендует пользователям сначала запустить процесс, сервер Shizuku, с правами root или ADB. Когда приложение запускается, привязка к серверу Shizuku также будет отправлена приложению. Самая важная функция, которую предоставляет Shizuku, - это быть чем-то вроде посредника, принимающего запросы от приложения, отправляющего их на сервер системы и отсылающего результаты обратно. Вы можете увидеть метод transactRemote в классе: rikka.shizuku.server.ShizukuService, а также в классе: moe.shizuku.api.ShizukuBinderWrapper. Итак, мы достигли нашей цели - использовать системные API с более высоким разрешением. А для приложения это почти идентично использованию системных API напрямую. □ API и образец □ https://github.com/RikkaApps/Shizuku-API Переход с версии до v11 Существующие приложения, конечно же, продолжают работать. Туториал для чайников, не понимающие, как пользоваться Shizuku: https://github.com/RikkaApps/Shizuku-API#migration-guide-for-existing-applications-use-shizuku-pre-v11 ♧ ВНИМАНИЕ, ОГРАНИЧЕНИЯ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ БЕЗ root-ПРАВ И С ADB ♧ Разрешения ADB ограничены ADB имеет ограниченные разрешения, которые отличаются на разных версиях системы. Вы можете посмотреть разрешения, предоставленные ADB здесь. Перед вызовом API вы можете использовать ShizukuService#getUid, чтобы проверить, запущен ли Shizuku пользователем ADB, или использовать: ShizukuService#checkPermission, чтобы проверить, имеет ли сервер достаточные разрешения. Скрытое ограничение API в Android 9 Начиная с Android 9, использование скрытых API ограничено для обычных приложений. Пожалуйста, используйте другие методы (например: https://github.com/LSPosed/AndroidHiddenApiBypass). Android 8.0 и ADB В настоящее время способ, которым служба Shizuku получает процесс приложения, заключается в комбинации: IActivityManager#registerProcessObserver и IActivityManager#registerUidObserver (26+), чтобы гарантировать, что процесс приложения будет отправлен при запуске приложения. Однако, на API 26, ADB не хватает разрешений для использования registerUidObserver, поэтому если вам нужно использовать Shizuku в процессе, который может быть запущен не Активностью, рекомендуется запускать связку отправки путем запуска прозрачной активности. ♤ ВНИМАНИЕ, ТЕПЕРЬ ОГРАНИЧЕНИЯ АБСОЛЮТНО ДЛЯ ВСЕХ ♤ Вам ЗАПРЕЩАЕТСЯ использовать файлы изображений, перечисленные ниже, любым способом (кроме как для отображения самой Shizuku). manager/src/main/res/mipmap-hdpi/ic_launcher.png manager/src/main/res/mipmap-hdpi/ic_launcher_background.png manager/src/main/res/mipmap-hdpi/ic_launcher_foreground.png manager/src/main/res/mipmap-xhdpi/ic_launcher.png manager/src/main/res/mipmap-xhdpi/ic_launcher_background.png manager/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png manager/src/main/res/mipmap-xxhdpi/ic_launcher.png manager/src/main/res/mipmap-xxhdpi/ic_launcher_background.png manager/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png manager/src/main/res/mipmap-xxxhdpi/ic_launcher.png manager/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png manager/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png Вам ЗАПРЕЩАЕТСЯ распространять собранный вами apk (в том числе модифицированный, например, переименовать "Shizuku" во что-то другое) в любых магазинах (IBNLT Google Play Store и т.д.). Открытый исходный код: https://github.com/RikkaApps/Shizuku Все вопросы по ошибкам/багам/побочным проблемам/и посвещённые много, чему ещё можно задавать и обсуждать тут: https://github.com/RikkaApps/Shizuku/issues Список всех изменений/возобновлений в Shizuku: https://github.com/RikkaApps/Shizuku/releases Официальный сайт разработчика: https://shizuku.rikka.app/

You may also be interested