Skip to content

Instantly share code, notes, and snippets.

@iegik
Last active February 8, 2026 10:42
Show Gist options
  • Select an option

  • Save iegik/226018ab779ce603e95be0f3bb4709cd to your computer and use it in GitHub Desktop.

Select an option

Save iegik/226018ab779ce603e95be0f3bb4709cd to your computer and use it in GitHub Desktop.
Android

Команды перезагрузки в режим прошивки (bootloader)

Перезагрузка Android в режим загрузки (bootloader), данная команда работает если устройство включено в обычном режиме:

adb reboot bootloader

Перезагрузка Android в обычный режим из режима прошивки (bootloader):

fastboot reboot

Перезагрузка Android из режима прошивки (bootloader) в этот же режим:

fastboot reboot-bootloader

Команда «видит» ли ПК ваш Android

Возьмите в привычку проверять перед тем как что-то делать в Fastboot если соединение между компьютером и Android:

Проверка «видит ли» ПК ваш Android:

fastboot devices

Данную команду выполнять когда устройство уже в режиме прошивке (bootloader)Прошить Android с помощью FastBoot

Команды разблокировки и блокировки загрузчика Nexus

Разлочить bootloader для Nexus:

fastboot oem unlock

или

fastboot flashing unlock

Залочить bootloader для Nexus:

fastboot oem lock

Команда узнать версию bootloader

Покажет установленную на Android номер версии бутлоадер:

fastboot getvar version-bootloader

Команды форматирования раздела

Перед тем как прошить какой либо раздел в Android, вначале его необходимо отформатировать для того чтобы не возникло проблем в работе fastboot erase Imya_razdela — стереть раздел: boot, radio, recovery, system, userdata и другие.

Стирает раздел Кеш (Cache):

fastboot erase cache

Стирает раздел Дата (Data/UserData):

fastboot erase userdata

или

fastbot -w

Стирает раздел Систем (System):

fastboot erase system

Стирает раздел Recovery:

fastboot erase recovery

dfastcach1

Команды для прошивки разделов Android

После того как выполнили форматирование раздела или разделов, можете приступить к прошивке:

fastboot flash Imya_razdela imya_file.img # прошивка выбранного раздела: boot, radio, recovery, system, userdata и другие.

Прошить раздел системы (System):

fastboot flash system imya.img

Прошить раздел кеш (Cache):

fastboot flash cache imya.img

Прошить раздел дата (Data):

fastboot flash userdata imya.img

Прошить раздел Recovery:

fastboot flash recovery imya.img

Прошить Android c помощью FastBoot

Установка анимации включения (прошивка раздела с анимацией):

fastboot flash splash1 splash.img

Прошить все разделы (boot, recovery и system):

fastboot flashall

Вместо imya.img — необходимо прописывать имя файла которые вы собираетесь прошить

Команда для установки update.zip

Прошивает на Android архив-обновление в формате update.zip или архив ZIP с IMG образами различных разделов:

fastboot update имя_файла.zip

Для устройств Sony

Проверка подключения устройства Sony, если ответ 0.3 устройство, то тогда подключено:

fastboot -i 0x0fce getvar version

Разблокировка bootloader

fastboot -i 0x0fce oem unlock 0xПолученый_Ключ

Более детальная информация по разблокировке Bootloader Sony — Как разблокировать Bootloader Sony

Ошибка Waiting for Device

Если у вас долгое время в командном окне горит надпись waiting for device — значит:

Не установлен или некорректно установлен драйвер — переустановить или установить Устройство Android не в режиме Bootloader — перевести Некорректное подключение к USB порту — использовать задние порты USB 2.0 компьютера, не использовать USB хабы Более подробно о данной ошибке «Waiting for Device» читайте в специальной посвященной этому статье Waiting for Device.

Flashing

Enable root flag: ##7378423##

Unlock by IMAY: https://developer.sonymobile.com/unlockbootloader/

f that fails 1: Flash boot.img in fastboot & reboot into recovery 2 (optional): If the device is not booting, reboot to bootloader again and run: fastboot erase system fastboot erase userdata 3: Enter recovery, go to mounts and storage 4: Format /system, then /data and then /cache (Important step!)

ADB

connect via TCP/IP

adb -s <device_name> tcpip 5555

shell

adb -s <device_name> shell

List third-party packages

adb shell pm list packages -3
adb shell cmd package list packages -3

List permissions of the app

adb shell dumpsys package <packagename>

Run application

am start -n <package-name>/<package-name>.MainActivity

Run commmand beside app permissions

run-as <package-name> <command>

Problems

  • INSTALL_FAILED_USER_RESTRICTED - Turn On "Install via USB"

  • INSTALL_FAILED_UPDATE_INCOMPATIBLE - adb install -r -t -d <apk> -r: replace existing application -t: allow test packages -d: allow version code downgrade (debuggable packages only) -p: partial application install (install-multiple only) -g: grant all runtime permissions

  • Network Response Timeout

adb -s <device name> reverse tcp:8081 tcp:8081
adb -s <device name> reverse --remove-all

Optimize Android for Kiosk-mode

Connect to device

adb -s <device name> shell

Get info

getprop ro.build.version.release

Disable animations (biggest visible speed boost)

settings put global window_animation_scale 0
settings put global transition_animation_scale 0
settings put global animator_duration_scale 0

Stay awake

settings put system screen_off_timeout 2147483647
svc power stayon true

Remove bloatware

pm list packages
pm uninstall --user 0 com.google.android.youtube
pm uninstall --user 0 com.google.android.music
pm uninstall --user 0 com.google.android.videos
pm uninstall --user 0 com.facebook.katana
pm uninstall --user 0 com.facebook.system

Safe to disable

pm disable-user --user 0 <package>

# Unwanted
com.google.android.youtube
com.google.android.videos
com.spotify.music
com.samsung.android.video
com.samsung.android.music

# printing
com.android.bips # Android Built-In Print Service
com.android.printspooler
com.android.dreams # Android screensaver
com.android.dreams.basic
com.android.dreams.phototable
com.android.wallpaper.livepicker

# Samsung extras
com.samsung.android.game.gos
com.samsung.android.kidsinstaller
com.samsung.android.forest
com.samsung.android.app.dressroom
com.samsung.android.livestickers
com.samsung.android.dynamiclock
com.samsung.android.homemode

# Voice / search / assistants
com.google.android.googlequicksearchbox
com.samsung.android.app.settings.bixby
com.samsung.android.bixby.service

# Sharing / cloud / personal features
com.samsung.android.privateshare
com.samsung.android.app.simplesharing
com.samsung.android.allshare.service.fileshare
com.samsung.android.allshare.service.mediashare
com.samsung.android.scloud

# Diagnostics / telemetry (safe on kiosk)
com.android.traceur
com.google.android.feedback
com.google.mainline.telemetry
com.samsung.android.securitylogagent
com.samsung.android.knox.analytics.uploader

Limit up to 1 app running

settings put global background_process_limit 1

Hide some UI

settings put secure show_ime_with_hard_keyboard 0
# settings put secure doze_enabled 0 # Power-saving mode when device is idle
settings put global device_idle_constants inactive_to=600000

Lock CPU performance (no root version)

cmd power set-fixed-performance-mode-enabled true

Disable notifications globally (kiosk style)

settings put global heads_up_notifications_enabled 0
cmd notification set_dnd true
Error occurred. Check logcat for details. Invalid filter: 0

Kiosk app

Add to whitelist

dumpsys deviceidle whitelist +<com.your.kiosk.app>
cmd appops set com.your.kiosk.app RUN_IN_BACKGROUND allow

Lock app in foreground (optional but powerful)

am set-inactive com.your.kiosk.app false

Diagnostics

# Check RAM
dumpsys meminfo

# Check running processes
top -m 10

# Reboot
adb reboot

Rollback

svc power stayon false
settings put system screen_off_timeout 600000  # 10 minutes
settings put secure doze_enabled 1
settings put global animator_duration_scale 1
settings put global heads_up_notifications_enabled 1
settings put global transition_animation_scale 1
settings put global window_animation_scale 1
settings put global zen_mode 0
settings delete global background_process_limit
pm enable com.android.bips
pm enable com.android.dreams
pm enable com.android.printspooler
cmd package install-existing com.google.android.youtube
cmd power set-fixed-performance-mode-enabled false
cmd notification set_dnd false

All actions rollback table:

use rollback
settings put global <key> <value> -//-
pm uninstall --user 0 <package> cmd package install-existing <package>
pm disable-user --user 0 <package> pm enable <package>

5.1.1

  permission:android.permission.ACCESS_COARSE_LOCATION
  permission:android.permission.ACCESS_FINE_LOCATION
  permission:android.permission.ACCESS_MOCK_LOCATION
  permission:android.permission.AUTHENTICATE_ACCOUNTS
  permission:android.permission.BLUETOOTH
  permission:android.permission.BLUETOOTH_ADMIN
  permission:android.permission.CALL_PHONE
  permission:android.permission.CAMERA
  permission:android.permission.CHANGE_WIFI_MULTICAST_STATE
  permission:android.permission.CHANGE_WIFI_STATE
  permission:android.permission.CHANGE_WIMAX_STATE
  permission:android.permission.CLEAR_APP_CACHE
  permission:android.permission.DISABLE_KEYGUARD
  permission:android.permission.INTERNET
  permission:android.permission.LGT_CONTENTS
  permission:android.permission.MANAGE_ACCOUNTS
  permission:android.permission.NFC
  permission:android.permission.NFC_TRANSACTION
  permission:android.permission.PROCESS_OUTGOING_CALLS
  permission:android.permission.READ_CALENDAR
  permission:android.permission.READ_CALL_LOG
  permission:android.permission.READ_CELL_BROADCASTS
  permission:android.permission.READ_CONTACTS
  permission:android.permission.READ_PHONE_STATE
  permission:android.permission.READ_PROFILE
  permission:android.permission.READ_SMS
  permission:android.permission.READ_SOCIAL_STREAM
  permission:android.permission.READ_USER_DICTIONARY
  permission:android.permission.RECEIVE_MMS
  permission:android.permission.RECEIVE_SECURITY_SMS
  permission:android.permission.RECEIVE_SMS
  permission:android.permission.RECEIVE_WAP_PUSH
  permission:android.permission.RECORD_AUDIO
  permission:android.permission.SEND_SMS
  permission:android.permission.SUBSCRIBED_FEEDS_WRITE
  permission:android.permission.SYSTEM_ALERT_WINDOW
  permission:android.permission.USE_CREDENTIALS
  permission:android.permission.USE_SIP
  permission:android.permission.WRITE_CALENDAR
  permission:android.permission.WRITE_CALL_LOG
  permission:android.permission.WRITE_CONTACTS
  permission:android.permission.WRITE_EXTERNAL_STORAGE
  permission:android.permission.WRITE_PROFILE
  permission:android.permission.WRITE_SMS
  permission:android.permission.WRITE_SOCIAL_STREAM

Install Play Store

  1. Download a Open GApps zip file from the site.
unzip open_gapps-*.zip 'Core/*'
rm Core/setup*
lzip -d Core/*.lz
for f in $(ls Core/*.tar); do
  tar -x --strip-components 2 -f $f
done
  1. Start emulator in write mode
$ANDROID_HOME/tools/emulator @... -writable-system &
  1. Install packages
$ANDROID_HOME/platform-tools/adb root
$ANDROID_HOME/platform-tools/adb remount
$ANDROID_HOME/platform-tools/adb push etc /system
$ANDROID_HOME/platform-tools/adb push framework /system
$ANDROID_HOME/platform-tools/adb push app /system
$ANDROID_HOME/platform-tools/adb push priv-app /system
  1. Restart
$ANDROID_HOME/platform-tools/adb shell stop
$ANDROID_HOME/platform-tools/adb shell start
  1. Stop the emulator and start it again in write mode (2.).
  2. Then, stop it and start it again normally.
$ANDROID_HOME/tools/emulator @... &

Works on Android Pie

  • Android 15 (beta)

  • Android 14 (stable)

    targetSdk will need to be 34+ for new apps and app updates by August 31, 2024.

  • Android 13 (LTS)

    targetSdk must be 33+ for new apps and app updates since August 31, 2023.

  • Android 12 (legacy)

    targetSdk 31+

https://endoflife.date/android

Codename Version API level/NDK release LTS
Baklava 16 API level 36 latest
Vanilla Ice Cream 15 API level 35 LTS
Updide Down Cake 14 API level 34 LTS
Tiramisu 13 API level 33 legacy
Snow Cone v2 12 API level 32
Snow Cone 12 API level 31
Red Velvet Cake 11 API level 30
Quince Tart 10 API level 29
Pie 9 API level 28
Oreo 8.1.0 API level 27
Oreo 8.0.0 API level 26
Nougat 7.1 API level 25
Nougat 7.0 API level 24
Marshmallow 6.0 API level 23
Lollipop 5.1 API level 22
Lollipop 5.0 API level 21
KitKat 4.4 - 4.4.4 API level 19
Jelly Bean 4.3.x API level 18
Jelly Bean 4.2.x API level 17
Jelly Bean 4.1.x API level 16
Ice Cream Sandwich 4.0.3 - 4.0.4 API level 15, NDK 8
Ice Cream Sandwich 4.0.1 - 4.0.2 API level 14, NDK 7
Honeycomb 3.2.x API level 13
Honeycomb 3.1 API level 12, NDK 6
Honeycomb 3.0 API level 11
Gingerbread 2.3.3 - 2.3.7 API level 10
Gingerbread 2.3 - 2.3.2 API level 9, NDK 5
Froyo 2.2.x API level 8, NDK 4
Eclair 2.1 API level 7, NDK 3
Eclair 2.0.1 API level 6
Eclair 2.0 API level 5
Donut 1.6 API level 4, NDK 2
Cupcake 1.5 API level 3, NDK 1
(no codename) 1.1 API level 2
(no codename) 1.0 API level 1

Java

Codename Version LTS
Java 25 65 RC
Java 24 65
Java 23 65
Java 22 65 latest
Java 21 65 LTS
Java 20 64
Java 19 63
Java 18 62
Java 17 61 LTS
Java 16 60
Java 15 59
Java 14 58
Java 13 57
Java 12 56
Java 11 55 LTS (preffered)
Java 10 54
Java 9 53
Java 8 52 EOL
Java 7 51
Java 6 50
Java 5 49

-https://www.jenv.be/-

For React Native apps use OpenJDK (AdoptOpenJDK/Eclipse Adoptium)

brew install openjdk@11

  • Why?: OpenJDK is the open-source reference implementation of the Java platform, and AdoptOpenJDK (now part of Eclipse Adoptium) provides well-maintained, free builds of OpenJDK. It’s widely used in the development community, including for Android development, which is integral to React Native.
  • Version: For React Native, Java 11 is typically recommended. It's compatible with Android development tools, and AdoptOpenJDK provides long-term support (LTS) versions, making it a stable choice.
  • Ease of Setup: AdoptOpenJDK is easy to install and integrate with Android Studio, which is often used alongside React Native for Android development.

Ruby

Version LTS
ruby-3.4.0 RC
ruby-3.3.4 latest
ruby-3.1.6 LTS
ruby-3.0.7 EOL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment