This is an old revision of the document!
Обычно требуется зашить TWRP и после поставить SuRoot или Magisk.
Всё необходимое можно найти на 4PDA
Настройки, Сведения о ПО, Номер сборки - долбим раз 10.
Настройки, Параметры разработчика:
Для удобства работы лучше всего установить Entware и через него поставить OpenSSH, mc и прочие утилиты.
Лучше заранее подготовить micro-sd с:
Ставим Barcode Scanner и цепляемся к WiFi.
Ставим Magisk/SuperSU.
Ставим F-Droid.
Из F-Droid устанавливаем:
Заходим в 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
Требуется каждый раз после очистки /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'
Создать файл: /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 /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.
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 '.*||"
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
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
В 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
После копирования настроек из /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
Можно прописать это в один из скриптов автозапуска и тогда после сброса устройство сразу запустится в обычном режиме.
Из этих папок приложения считаются уже установленными и не могут быть удалены, только обновлены:
Из этих папок приложения устанавливаются сами и могут быть полностью удалены пользователем:
На apk файлы дожны быть выставлены владелец и права:
chown 0:0 * chmod 0644 *
В этом разделе собраны особенности работы на устройствах Samsung.
SamsungIMEv3.3Tab или как то так.
Может иметь в зависимостях другие самсунговские сервисы и без них начать падать.
Лучше установить AnySoftKeyboard, обеспечить автоустановку или разместить в /system/app чтобы гарантировать наличие работающей клавиатуры сразу после очистки устройства.
Отвечают за: язык интерфейса, параметры WiFi и сотового модуля, предустановленный софт.
База с настройками может лежать тут: /product/omc
Чтобы изменить текущие нужно прописать код в файлах: /efs/imei (сразу во всех)
Подробнее: 1, 2, 3, 4, 5
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.
Чтобы избежать этого нужно:
ro.security.vaultkeeper.feature=0
Или зашить через TWRP: RMM-State_Bypass.zip который делает примерно тоже самое: заменяет на 0 значение “ro.security.vaultkeeper.feature” в файлах:
Рекомендованный порядок установки: