Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
software:android [2020/09/08 00:49] – root | software:android [2021/12/03 18:36] – [Авто установка приложений] root |
---|
Из F-Droid устанавливаем: | Из F-Droid устанавливаем: |
* Terminal Emulator | * Terminal Emulator |
* Ghost Commander | * Ghost Commander / Material Files |
* AnySoftKeyboard | * AnySoftKeyboard |
* BusyBox | * BusyBox |
| |
Заходим в BusyBox и инсталлируем.\\ | Заходим в BusyBox и инсталлируем.\\ |
Если произошла ошибка - скорее всего Android 9+, в нём нет отдельно точки монтирования /system и оно просто часть /, поэтому придётся править скрипты BusyBox.\\ | \\ |
Используя Ghost Commander в файлах:\\ | Если произошла ошибка - скорее всего Android 9+, в нём нет отдельно точки монтирования /system и оно просто часть.\\ |
| Есть альтернативный пакет BusyBox в F-Froid с иконкой duck, он не требует дополнительных действий.\\ |
| Ручное исправление: используя Ghost Commander в файлах:\\ |
**/data/data/ru.meefik.busybox/files/scripts/install.sh** \\ | **/data/data/ru.meefik.busybox/files/scripts/install.sh** \\ |
**/data/data/ru.meefik.busybox/files/scripts/remove.sh** \\ | **/data/data/ru.meefik.busybox/files/scripts/remove.sh** \\ |
Информация больше для справки, и на случай если потребуется искать способ запуска без SuRoot/Magisk.\\ | Информация больше для справки, и на случай если потребуется искать способ запуска без SuRoot/Magisk.\\ |
| |
| |
| === Поиск мест для автозапуска === |
| Скрипт для поиска возможных скриптов откуда можно делать автозапуск: |
| <code>dmesg | grep "init: cannot find" | sed -e "s|.*cannot find '||" | sed -e "s|', disabling '.*||"</code> |
| |
| |
=== Для старых систем === | === Andriod 4 и младше === |
| До 5 андройда в файлах /system/bin/install-recovery.sh или /system/etc/install-recovery.sh: |
<code> | <code> |
echo '' >> install-recovery.sh | echo '' >> install-recovery.sh |
</code> | </code> |
| |
| |
| === Samsung SM-J120F === |
| В SM-J120F (андройд 5.1.1) не получилось найти способа чтобы сразу запускать стааторвыйе скрипты entware, все попытки обрывались на том, что не хватало прав, а su не работал из за ограничений SeLinux - не мог связатся со своей службой чтобы повысить права.\\ |
| Пришлось делать запуск через magisk, разместив файл /data/adb/service.d/entware.sh, который просто запускает optstart.sh. \\ |
| Особенности этого решения: |
| * симлинки magisk отказывается обрабатывать, как для папки service.d так и для её содержимого; \\ |
| * magisk размещает busybox в /data/adb/magisk а samsung на уровне ядра запретил запуск из /data, поэтому пришлось скопировать busybox в /opt и сделать симлинк; |
| * чтобы после очистки /data сохранить автозапуск потребовалось добавить скрипт [[http://www.netlab.linkpc.net/download/software/entware/opt/bin/setup_autorun_legacy.sh|/opt/bin/setup_autorun_legacy.sh]] в найденные места автостарта, как оказалось прав доступа там хватает для работы с /data. |
| |
| Скрипт setup_autorun_legacy.sh атоматически определяет что он запущен на samsung и в этом случае переносит busybox в /opt. |
| |
| Чтобы скрипт запускался автоматически нужно в начало файла /system/etc/init.sec.boot.sh (после shebang) добавить: |
<code> | <code> |
ln -s /system/opt/bin/optstart.sh /system/bin/dmbserver | /system/opt/bin/setup_autorun_legacy.sh > /dev/kmsg |
ln -s /system/opt/bin/optstart.sh /system/bin/insthk | |
ln -s /system/opt/bin/optstart.sh /system/bin/IPSecService | |
ln -s /system/opt/bin/optstart.sh /system/bin/sdp_cryptod | |
ln -s /system/opt/bin/optstart.sh /system/bin/sem_daemon | |
ln -s /system/opt/bin/optstart.sh /system/bin/sysmon | |
ln -s /system/opt/bin/optstart.sh /system/bin/load_amber_modules.sh | |
/system/bin/restorecon -Rv /system/etc/ | |
</code> | </code> |
| |
Samsung: | Затем выполнить: |
<code> | <code> |
echo '' >> /system/etc/init.goldfish.sh | chmod +x /system/etc/init.sec.boot.sh |
echo '/system/opt/bin/optstart.sh' >> /system/etc/init.goldfish.sh | ln -sf /system/opt/bin/setup_autorun_legacy.sh /system/bin/load_amber_modules.sh |
echo '' >> /system/etc/init.goldfish.sh | ln -sf /system/opt/bin/setup_autorun_legacy.sh /system/bin/sysmon |
| /system/bin/restorecon -Rv /system/bin/ |
echo '' >> /system/etc/init.sec.boot.sh | |
echo '/system/opt/bin/optstart.sh' >> /system/etc/init.sec.boot.sh | |
echo '' >> /system/etc/init.sec.boot.sh | |
/system/bin/restorecon -Rv /system/etc/ | /system/bin/restorecon -Rv /system/etc/ |
</code> | </code> |
| |
| |
| === Samsung SM-G531F Galaxy Grand Prime === |
| <code> |
| ln -s /system/opt/bin/optstart.sh /system/bin/insthk |
| ln -s /system/opt/bin/optstart.sh /system/bin/sysmon |
| </code> |
| Первым стартует sysmon, при этом у него ограниченный SeLinux контекст, которого достаточно чтобы запустить все что нужно для entware, однако позднее есть ограничения по работе с /system через ssh.\\ |
| Поэтому в скрипт [[http://www.netlab.linkpc.net/download/software/entware/opt/bin/optstart.sh|/opt/bin/optstart.sh]] был добавлен блок кода, который проверяет что магиск установлен и если да, то когда скрипт выполняется не под SeLinux контекстом magisk он перезапускает сам себя через su и продолжает работу уже под SeLinux контекстом magisk. |
| |
=== rootagent === | |
| |
| === HiScreen Spider и прочие на qualcom === |
Сработает только если есть служба rootagent. | Сработает только если есть служба rootagent. |
<code>echo '' >> /system/build.prop | <code>echo '' >> /system/build.prop |
ln -s /system/opt/bin/optstart.sh /system/etc/init.qcom.rootagent.sh | ln -s /system/opt/bin/optstart.sh /system/etc/init.qcom.rootagent.sh |
</code> | </code> |
| |
| |
| |
=== Поиск мест для автозапуска === | |
Скрипт для поиска возможных скриптов откуда можно делать автозапуск: | |
<code>dmesg | grep "init: cannot find" | sed -e "s|.*cannot find '||" | sed -e "s|', disabling '.*||"</code> | |
| |
| |
==== Исправление разрешений ==== | ==== Исправление разрешений ==== |
После копирования настроек из **/data/data** приложения с ними работать не будут тк не правильно выставлены разрешения, владелец и SeLinux атрибуты.\\ | После копирования настроек из **/data/data** приложения с ними работать не будут тк не правильно выставлены разрешения, владелец и SeLinux атрибуты.\\ |
| См скрипт: [[http://www.netlab.linkpc.net/download/software/entware/opt/bin/fix_datadata_perms.sh|/opt/bin/fix_datadata_perms.sh]] |
| |
| |
Из этих папок приложения устанавливаются сами и могут быть полностью удалены пользователем: | Из этих папок приложения устанавливаются сами и могут быть полностью удалены пользователем: |
* **/system/vendor/operator/app** | * **/system/vendor/operator/app** |
| * **/system/preload/** |
| * **/prism/preload/SER/hidden_app** |
* **/system/product/preload/SER/hidden_app** (SER = Россия; специфично для Samsung; не работает после удаления приложений Samsung из /system/priv-app) | * **/system/product/preload/SER/hidden_app** (SER = Россия; специфично для Samsung; не работает после удаления приложений Samsung из /system/priv-app) |
* **/system/csc/SER/system/app** (аналогично предыдущему, для андройд 7 и возможно младше) | * **/system/csc/SER/system/app** (аналогично предыдущему, для андройд 7 и возможно младше) |
/data использовался хак с перемонтированием файловой системы: | /data использовался хак с перемонтированием файловой системы: |
<code>/system/bin/mount -o rw,bind /data/opt /opt</code> | <code>/system/bin/mount -o rw,bind /data/opt /opt</code> |
| Либо можно использовать симлинк, если файлы лежать за пределами /data.\\ |
| Подробнее: [[https://stackoverflow.com/questions/36674727/permission-denied-on-exec-from-a-binary-running-as-root|stackoverflow]], [[https://github.com/termux/termux-packages/issues/3672|termux-packages]] |
| |
| |
| |
| |