Site Tools


software:android

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
software:android [2020/09/08 01:09]
– [Для старых систем] root
software:android [2023/11/11 21:04] (current)
– [Автозапуск для Magisk] root
Line 1: Line 1:
-====== Мотивация ======+====== Android: зачистка и настройка перед использованием ====== 
 + 
 +Мотивация:
   - Повысить приватность: удалить весь софт который без спроса отправляет и получает данные   - Повысить приватность: удалить весь софт который без спроса отправляет и получает данные
   - Экономия заряда: устройство делает только то что нужно владельцу   - Экономия заряда: устройство делает только то что нужно владельцу
Line 40: Line 42:
 ====== Получение удалённого доступа ====== ====== Получение удалённого доступа ======
 Для удобства работы лучше всего установить [[https://github.com/Entware/Entware|Entware]] и через него поставить OpenSSH, mc и прочие утилиты. Для удобства работы лучше всего установить [[https://github.com/Entware/Entware|Entware]] и через него поставить OpenSSH, mc и прочие утилиты.
 +
 +Быстрый способ если уже установлен свежий Magisk с использованием ADB
 +Проверить наличие /data/adb/magisk/busybox, если есть то
 +<code>cd /mnt
 +/data/adb/magisk/busybox wget http://netlab.dhis.org/download/software/entware/install/entware_install.sh
 +chmod +x entware_install.sh
 +sh entware_install.sh
 +</code>
 +
  
 Лучше заранее подготовить micro-sd с: Лучше заранее подготовить micro-sd с:
Line 52: Line 63:
 Из 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** \\
Line 111: Line 124:
  
 # define service, use executable here if script not needed # define service, use executable here if script not needed
-service entware /system/opt/bin/optstart.sh+service entware /system/bin/sh /system/opt/bin/optstart.sh
     # don't start unless explicitly asked to     # don't start unless explicitly asked to
     disabled     disabled
Line 136: Line 149:
  
  
 +Если это не срабатывает, можно попробовать отредактировать SELinux правила и добавить их загрузку.
 +В терминале:
 +<code>
 +/system/bin/supolicy --live 'allow init * * *'
 +/system/bin/supolicy --save /system/etc/selinux/sepolicy
 +</code>
  
 +И добавить в rc файл:
 +<code>
 +on property:sys.boot_completed=1
 +    exec u:r:magisk:s0 root root -- /system/bin/load_policy /system/etc/selinux/sepolicy
 +</code>
 +
 +[[https://android.stackexchange.com/questions/207484/how-to-run-dnscrypt-as-a-background-service-on-android/207647#207647|Источник android.stackexchange.com]]
 ==== Автозапуск на старых системах ==== ==== Автозапуск на старых системах ====
 Информация больше для справки, и на случай если потребуется искать способ запуска без 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: До 5 андройда в файлах /system/bin/install-recovery.sh или /system/etc/install-recovery.sh:
 <code> <code>
Line 161: Line 191:
  
  
-== Samsung SM-J120F ==+=== Samsung SM-J120F ===
 В SM-J120F (андройд 5.1.1) не получилось найти способа чтобы сразу запускать стааторвыйе скрипты entware, все попытки обрывались на том, что не хватало прав, а su не работал из за ограничений SeLinux - не мог связатся со своей службой чтобы повысить права.\\ В SM-J120F (андройд 5.1.1) не получилось найти способа чтобы сразу запускать стааторвыйе скрипты entware, все попытки обрывались на том, что не хватало прав, а su не работал из за ограничений SeLinux - не мог связатся со своей службой чтобы повысить права.\\
 Пришлось делать запуск через magisk, разместив файл /data/adb/service.d/entware.sh, который просто запускает optstart.sh. \\ Пришлось делать запуск через magisk, разместив файл /data/adb/service.d/entware.sh, который просто запускает optstart.sh. \\
Line 169: Line 199:
   * чтобы после очистки /data сохранить автозапуск потребовалось добавить скрипт [[http://www.netlab.linkpc.net/download/software/entware/opt/bin/setup_autorun_legacy.sh|/opt/bin/setup_autorun_legacy.sh]] в найденные места автостарта, как оказалось прав доступа там хватает для работы с /data.   * чтобы после очистки /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.+Скрипт setup_autorun_legacy.sh атоматически определяет что он запущен на samsung и в этом случае переносит busybox в /opt.
  
 Чтобы скрипт запускался автоматически нужно в начало файла /system/etc/init.sec.boot.sh (после shebang) добавить: Чтобы скрипт запускался автоматически нужно в начало файла /system/etc/init.sec.boot.sh (после shebang) добавить:
Line 178: Line 208:
 Затем выполнить: Затем выполнить:
 <code> <code>
 +chmod +x /system/etc/init.sec.boot.sh
 ln -sf /system/opt/bin/setup_autorun_legacy.sh /system/bin/load_amber_modules.sh ln -sf /system/opt/bin/setup_autorun_legacy.sh /system/bin/load_amber_modules.sh
 ln -sf /system/opt/bin/setup_autorun_legacy.sh /system/bin/sysmon ln -sf /system/opt/bin/setup_autorun_legacy.sh /system/bin/sysmon
Line 185: Line 216:
  
  
-=== rootagent ===+ 
 +=== 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. 
 + 
 + 
 + 
 +=== Samsung GT-I9300I Galaxy S III Duos === 
 +<code> 
 +ln -s /system/opt/bin/optstart.sh /system/bin/auditd 
 +</code> 
 + 
 +Ещё можно попробовать добавить автозапуск в /system/etc/init.qcom.bt.sh и init.qcom.post_boot.sh, но похоже что достаточно auditd. 
 +=== HiScreen Spider и прочие на qualcom ===
 Сработает только если есть служба rootagent. Сработает только если есть служба rootagent.
 <code>echo '' >> /system/build.prop <code>echo '' >> /system/build.prop
Line 193: Line 241:
 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> 
  
  
Line 284: Line 326:
 ==== Исправление разрешений ==== ==== Исправление разрешений ====
 После копирования настроек из **/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]]
  
  
Line 319: Line 361:
 Из этих папок приложения устанавливаются сами и могут быть полностью удалены пользователем: Из этих папок приложения устанавливаются сами и могут быть полностью удалены пользователем:
   * **/system/vendor/operator/app**   * **/system/vendor/operator/app**
-  * **/system/product/preload/SER/hidden_app** (SER = Россия; специфично для Samsung; не работает после удаления приложений Samsung из /system/priv-app)+  * **/system/preload/** 
 + 
 +Из этих папок софт ставит самсунговский CSC при первой настройке (SER = Россия): 
 +  * **/prism/preload/SER/hidden_app** 
 +  * **/system/product/preload/SER/hidden_app**
   * **/system/csc/SER/system/app** (аналогично предыдущему, для андройд 7 и возможно младше)   * **/system/csc/SER/system/app** (аналогично предыдущему, для андройд 7 и возможно младше)
   * **/system/csc/common/system/app** (аналогично предыдущему, для андройд 7 и возможно младше)   * **/system/csc/common/system/app** (аналогично предыдущему, для андройд 7 и возможно младше)
Line 357: Line 403:
 /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]]
 +
 +
  
  
Line 392: Line 442:
  
  
 +{{tag>software howto linux android entware}}
software/android.1599527370.txt.gz · Last modified: 2020/09/08 01:09 by root