Site Tools


software:android

This is an old revision of the document!


Мотивация

  1. Повысить приватность: удалить весь софт который без спроса отправляет и получает данные
  2. Экономия заряда: устройство делает только то что нужно владельцу
  3. Экономия трафика: устройство не тратит деньги на передачу/получение данных которые в явном виде не иницировал владелец
  4. Быстрая загрузка: меньше всего загружается при старте устройства
  5. Повышенный комфорт использования: меньше фоновых приложений - больше памяти и процессорного времени для явно нужных приложений

Примеры

Samsung Galaxy Tab A (2016) (SM-T580)

  • /system/app: из 107 (626M) приложений осталось 11 (70.6M)
  • /system/priv-app: из 128 (933.3M) осталось 27 (249.4M)
  • Итого: из 235 (1559.3M) нужны 38 (320M) - 1239.3M не нужного.

Samsung Galaxy Tab A 10.1 (SM-T510)

  • /system/app: из 97 (424.2M) приложений осталось 9 (20.8M)
  • /system/priv-app: из 137 (1362.2M) осталось 30 (317.1M)
  • Итого: из 234 (1786.4M) только 39 (337.9M) - 1448.5M не нужного.

Получение ROOT

Обычно требуется зашить TWRP и после поставить SuRoot или Magisk.
Всё необходимое можно найти на 4PDA

Настройки, Сведения о ПО, Номер сборки - долбим раз 10.
Настройки, Параметры разработчика:

  • Заводская разблокировка - вкл
  • Stay awake (не выключать экран по время зарядки) - тогда WiFi не будет засыпать что очень заметно при работе через SSH по сетию
  • Отладка по USB - вкл

Получение удалённого доступа

Для удобства работы лучше всего установить Entware и через него поставить OpenSSH, mc и прочие утилиты.

Лучше заранее подготовить micro-sd с:

  • F-Droid - потребуется для установки другого софта
  • Barcode Scanner (есть в F-Droid) - чтобы со сканировать настройки и пароль для подключения к WiFi
  • Скрипт entware_install.sh - скачает и поставит entware
  • SuperSU или Magisk - в зависимости от того что рекомендовано на 4PDA для девайса

Ставим Barcode Scanner и цепляемся к WiFi.
Ставим Magisk/SuperSU.
Ставим F-Droid.
Из F-Droid устанавливаем:

  • Terminal Emulator
  • Ghost Commander
  • AnySoftKeyboard
  • BusyBox

Заходим в BusyBox и инсталлируем.
Если произошла ошибка - скорее всего Android 9+, в нём нет отдельно точки монтирования /system и оно просто часть /, поэтому придётся править скрипты BusyBox.
Используя Ghost Commander в файлах:
/data/data/ru.meefik.busybox/files/scripts/install.sh
/data/data/ru.meefik.busybox/files/scripts/remove.sh
заменяем:

busybox mount -o rw,remount /system

на

busybox mount -o rw,remount /

Решение от сюда: Busybox 1.31 Install error

В Terminal Emulator запускаем скрипт инсталяции:

su
sh /storage/XXX/entware_install.sh

вместо XXX будет идентификатор micro-sd флешки. Если ошибок не будет то можно запускать sshd:

su
/opt/etc/init.d/S40sshd start

Задаём пароль на root:

su
/opt/bin/busybox passwd

После чего можно подключатся по ssh:

ssh root@172.16.0.149 -p 22222

Автозапуск

Запускать автоматически entware можно при запуске зистемы, даже в случае сброса настроек (удаления содержимого /data).
В старых весриях Android это можно было сделать по разному, но сейчас лучше использовать способы специфичные для SuperSU или Magisk.
SuperSU и Magisk - автоматически определяется скриптом при установке и если не было ошибок то повторять описанное здесь нет смысла.

Почитать:
stackexchange.com/questions/213353
stackexchange.com/questions/213167

Автозапуск для SuperSU

Требуется каждый раз после очистки /data заново ставить SuperSU и прописывать.

ln -fvs /system/opt/bin/optstart.sh '/su/su.d/000001_opt'
ln -fvs /system/opt/bin/optstart.sh '/sbin/supersu/su.d/000001_opt'

Автозапуск для Magisk

Создать файл: /system/etc/init/entware.rc

#/etc/init/entware.rc

# define service, use executable here if script not needed
service entware /system/opt/bin/optstart.sh
    # don't start unless explicitly asked to
    disabled

    # only execute once, don't restart if exited
    # don't add if you want to restart service when killed
    oneshot

    # run with unrestricted SELinux context to avoid avc denials
    # it's required if SELinux is enforcing and service needs access
    # to some system resources not allowed by default sepolicy
    seclabel u:r:magisk:s0

# start the service when boot is completed
on property:sys.boot_completed=1
    start entware

Выполнить:

chown 0.0 /system/etc/init/entware.rc
chmod 0644 /system/etc/init/entware.rc
/system/bin/chcon u:object_r:system_file:s0 /system/etc/init/entware.rc

Автозапуск на старых системах

Информация больше для справки, и на случай если потребуется искать способ запуска без SuRoot/Magisk.

Для старых систем

echo '' >> install-recovery.sh
echo '/system/opt/bin/optstart.sh' >> /system/etc/install-recovery.sh
echo '' >> /system/etc/install-recovery.sh
/system/bin/restorecon -Rv /system/etc/
echo '#!/system/bin/sh' >> /system/etc/install-recovery-2.sh
echo '' >> /system/etc/install-recovery-2.sh
echo '/system/opt/bin/optstart.sh' >> /system/etc/install-recovery-2.sh
echo '' >> /system/etc/install-recovery-2.sh
chmod 0755 /system/etc/install-recovery-2.sh
/system/bin/restorecon -Rv /system/etc/
ln -s /system/opt/bin/optstart.sh /system/bin/dmbserver
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/

Samsung:

echo '' >> /system/etc/init.goldfish.sh
echo '/system/opt/bin/optstart.sh' >> /system/etc/init.goldfish.sh
echo '' >> /system/etc/init.goldfish.sh

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/

rootagent

Сработает только если есть служба rootagent.

echo '' >> /system/build.prop
echo '# start /system/etc/init.qcom.rootagent.sh' >> /system/build.prop
echo 'persist.sys.rootagent=1' >> /system/build.prop
echo '' >> /system/build.prop
ln -s /system/opt/bin/optstart.sh /system/etc/init.qcom.rootagent.sh

Поиск мест для автозапуска

Скрипт для поиска возможных скриптов откуда можно делать автозапуск:

dmesg | grep "init: cannot find" | sed -e "s|.*cannot find '||" | sed -e "s|', disabling '.*||"

Программы для удаления

/system/app

AdupsFota
AdupsFotaReboot
AgingTest
agold.AgoldFactoryTest
AgoldAutoPowerOnOff
AgoldRingtoneService
AgoldScanning
AguiAccAndAlspsCalibration
AguiBatteryStatsDumper
AguiCompass
AguiMemoryTester
AguiSoundRecorder
AllShareCastPlayer
AllshareFileShare
AllshareMediaShare
ApplicationsProvider
BasicDreams
BatteryWarning
BluetoothMidiService
BluetoothTest
BookmarkProvider
BtTool
BuiltInPrintService
CalendarDataMigrator
CalendarImporter
Camera
CaptivePortalLogin
Chrome
ChromeCustomizations
ClockPackage
ClockPackage_N_Tablet
CompanionDeviceManager
CtsShimPrebuilt
Devicemessages114
Devicemessages118
DictDiotekForSec
Drive
Duo
EasterEgg
EmergencyProvider
ESEServiceAgent
eSETerminal
ExactCalculator
FactoryAirCommandManager
FactoryCameraFB
FileManager
Flashlight
FlipboardBriefing
Gallery2
Gallery2PhotoPicker
Gallery2StereoBackground
Gallery2StereoCopyPaste
Gallery2StereoFancyColor
Gallery2StereoRefocus
GameOptimizer
GameOptimizingService
Gba
GBoard
GearManagerStub
Gmail2
GoogleCalendarSyncAdapter
GoogleContactsSyncAdapter
GooglePrintRecommendationService
GoogleTTS
Hangouts
IMEIApp
KeyChain
KidsHome_Installer
KidsHome_N
Maps
MDMApp
MDMConfig
MDMLSample
MiraVision
mldapchecker
MobilePrintSvc_Samsung
MtkBrowser
MtkCalendar
MtkFloatMenu
MTKLogger
Music
Music2
Omacp
PacProcessor
PartnerBookmarksProvider
Photos
PrintSpooler
SamsungCalendar
SamsungCalendar_Stable
SamsungMembersStub
SamsungOne
SamsungTTS
SBrowser_5.2
SchedulePowerOnOff
SCPMClient_N
ScreenCapture
SecHTMLViewer
SecMemo3-tablet
SecurityLogAgent
SetupWizardLegalProvider
ShortcutBackupService
SmartMirroring
SmartReminder
SmartSwitchAgent
SMusicPicker
SoundRecorder
SPrintSpooler
SPrintSpooler7
STalkback
SysScope
talkback
TasksProvider
Toolbox
UniversalMDMClient
Videos
VideoTrimmer
VideoTrimmer_Tablet
WallpaperBackup
WallpaperPicker
WAPPushManager
Weather_SEP10.3
WebManual
WifiGuider
withTV
YGPS
YouTube

/system/priv-app

AgoldNewSos
AguiWallPaper
AndroidPlatformServices
AppUpdater
BackupRestoreConfirmation
BadgeProvider_N
Baidu_Location
BeaconManager
BixbyService
BlockedNumberProvider
CallLogBackup
CallRecorderService
CarrierServices
ClockPack_v40
ConfigUpdater
ContactsDataMigrator
ContainerAgent3
CtsShimPrivPrebuilt
DailyBoard
DeviceQualityAgent
DuraSpeed
EasySetup
EmergencyInfo
EmojiUpdater
Excel_SamsungStub
FaceService
FaceUnlock
Finder
Finder_v7
Fmm
FotaAgent
GalaxyApps_3xh
GalaxyApps_Tablet
GalaxyAppsWidget_Tablet_TabA101
GmsCore
GoogleBackupTransport
GoogleFeedback
GoogleLoginService_tablet
GoogleOneTimeInitializer
GooglePartnerSetup
GoogleRestore
GoogleServicesFramework
ImsTelephonyService
imsservice
ImsService
KeyguardWallpaperUpdator
KLMSAgent
knoxanalyticsagent
KnoxCore
LegacySmartManager
LegacySmartManagerProvider
ManagedProvisioning
MmsService
MusicFX
NSFusedLocation_v3.5
OfficeMobile_SamsungStub
OneDrive_Samsung_v2
OneDrive_Samsung_v3
PersonalPageService
Phonesky
PhotoStudio_Beyond_Lite
PhotoStudio_WQHD_Dream_ArcSoft_Private
ProxyHandler
ringtoneBR
SamsungAccount_Dream
SamsungAccount_Star
SamsungBilling
SamsungCalendarProvider
SamsungCamera
SamsungCamera6
SamsungCloud
SamsungCloudClient
SamsungContacts
SamsungContacts80
SamsungDeviceHealthManagerService
SamsungDigitalWellbeing
SamsungExperienceService
SamsungGallery2018
SamsungInCallUI
SamsungSocial
SamsungVideoPlayer2016
SecCalculator_N
SecCalendarProvider_NOTSTICKER
SecEmail_N
SecGallery2015
SecLiveWallpapersPicker
SecMyFiles2017
SecMyFiles2018
SecSetupWizard_Global
SecSetupWizard2015
SecureFolder
SecureFolderStub
SEMFactoryApp
SettingsReceiver
SetupWizard
SetupWizard_tablet
SharedStorageBackup
smartfaceservice
SmartManager_v5
SmartManager_v5_DeviceSecurity
SmartManager_v6_DeviceSecurity
SMusicPicker
SOAgent
SPPPushClient
SPPPushClient_Prod
StatementService
StickerCenter
StickerFaceAR3
StickerProvider
StickerStamp
Stk1
StoryService
TagGoogle
Turbo
TurnSilent
Velvet
WallpaperCropper
WfoService
Word_SamsungStub

Остальное

Полностью: /product/preload

Программы для установки

  • Activity Launcher
  • Amaze
  • Aura Store - требуется как минимум чтобы обновить WebView, версия из маркета не требует Chrome, который удалён из системы ранее
  • Briar
  • ConnectBot
  • Conversations
  • Drowser
  • Etar
  • Fennec F-Droid
  • Simple Gallery
  • GPSTest
  • Imagepipe
  • LibreTorrent
  • Music
  • Open Camera
  • Orbot
  • OsmAnd~
  • Tor Browser
  • VLC
  • WiFiAnalyzer
  • WiFiKeyShare
  • YAACC

Разное

F-Droid репозитории

Включение ADB из TWRP

В TWRP ADB активирован и работает без ключа.
Чтобы включить ADB и авторизовать потребуется выполнить следующее.
Загрузится в TWRP, примонтировать System и выполнить следующее.

Загружаем ключ:

adb push /root/.android/adbkey.pub /data/misc/adb/adb_keys

Включаем ADB:

adb shell
echo 'ro.adb.secure=0' >> /system/build.prop
echo 'ro.secure=0' >> /system/build.prop
echo 'ro.debuggable=1' >> /system/build.prop
echo 'persist.sys.usb.config=mtp,adb' >> /system/build.prop
echo 'persist.service.adb.enable=1' >> /system/build.prop
echo 'persist.service.debuggable=1' >> /system/build.prop
echo '' >> /system/build.prop
exit

Перенос настроек данных на другое устройство

  • Скопировать: /storage/emulated/0
  • Скопировать: /storage/emulated/obb
  • Программы из /data/app лучше скопировать на флешку в новом устройстве и установить нужное
  • Настройки из /data/data копировать выборочно - от тех программ что нужны, от системных не копировать.

Исправление разрешений

После копирования настроек из /data/data приложения с ними работать не будут тк не правильно выставлены разрешения, владелец и SeLinux атрибуты.

Логи ошибок приложений

Хранятся здесь: /data/system/dropbox/

Перемонтировать на запись

/system/bin/mount -o rw,remount /
/system/bin/mount -o rw,remount /system

Перевод в нормальный режим

Если удалить все SetupWizard* то после сброса настроек и авто установки софта получим устройство с сильно ограниченным функционалом, чтобы это исправить нужно выполнить через adb shell или через терминал на устройстве:

settings put global setup_wizard_has_run 1
settings put secure user_setup_complete 1
settings put global device_provisioned 1

Можно прописать это в один из скриптов автозапуска и тогда после сброса устройство сразу запустится в обычном режиме.

Авто установка приложений

Из этих папок приложения считаются уже установленными и не могут быть удалены, только обновлены:

  • /system/product/app
  • /system/product/priv-app
  • /system/vendor/app/
  • /system/vendor/overlay

Из этих папок приложения устанавливаются сами и могут быть полностью удалены пользователем:

  • /system/vendor/operator/app
  • /system/product/preload/SER/hidden_app (SER = Россия; специфично для Samsung; не работает после удаления приложений Samsung из /system/priv-app)
  • /system/csc/SER/system/app (аналогично предыдущему, для андройд 7 и возможно младше)
  • /system/csc/common/system/app (аналогично предыдущему, для андройд 7 и возможно младше)

На apk файлы дожны быть выставлены владелец и права:

chown 0:0 *
chmod 0644 *

Особенности Samsung

В этом разделе собраны особенности работы на устройствах Samsung.

Оригинальные прошивки

TWRP

Клавиатура

SamsungIMEv3.3Tab или как то так.
Может иметь в зависимостях другие самсунговские сервисы и без них начать падать.
Лучше установить AnySoftKeyboard, обеспечить автоустановку или разместить в /system/app чтобы гарантировать наличие работающей клавиатуры сразу после очистки устройства.

Региональные настройки

Отвечают за: язык интерфейса, параметры WiFi и сотового модуля, предустановленный софт.
База с настройками может лежать тут: /product/omc
Чтобы изменить текущие нужно прописать код в файлах: /efs/imei (сразу во всех)
Подробнее: 1, 2, 3, 4, 5

Хак для запуска работы entware файлов

Samsung пропатчили ядро чтобы не допускать запуска исполняемых файлов из раздела /data, поэтому при установке в /data использовался хак с перемонтированием файловой системы:

/system/bin/mount -o rw,bind /data/opt /opt

Подлая залочка

Бутлуп с красным сообщением: “Only official released binaries are allowed to be flashed”.
В прошивальщике (зелёный экран при прошивке): “RMM State: Prenormal” и не возможность залить TWRP.
Описание с картинками
Подробности: 1, 2.

Чтобы избежать этого нужно:

  1. удалить из /system/priv-app: KnoxGuard, Rlc
  2. в build.prop (любой из) добавить:
ro.security.vaultkeeper.feature=0
ro.security.vaultkeeper.native=0


Или зашить через TWRP: RMM-State_Bypass.zip который делает примерно тоже самое: заменяет на 0 значение “ro.security.vaultkeeper.feature” в файлах:

  • /system/build.prop
  • /vendor/build.prop
  • /system/vendor/build.prop


Рекомендованный порядок установки:

  1. Download root zip and no-verity-opt-encrypt-6.0 (download links are in #2 post) and drop the zips into external sdcard
  2. Boot into TWRP and swipe “Allow modifications”
  3. Go into Wipe menu and select “Format data” - note that this will erase all your data including internal storage
  4. Reboot recovery, swipe to “Allow modification” and flash RMM-State_Bypass.zip
  5. Flash no-verity-opt-encrypt-6.0 zip downloaded at step #1 to disable data partition encryption
  6. Flash root zip downloaded at step #1
  7. Reboot the phone into system
  8. After booting up in setting wizard make sure to uncheck diagnostic data
software/android.1591090018.txt.gz · Last modified: 2020/06/02 09:26 by root