iegik
7/25/2017 - 11:37 AM

Android

Android

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

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

Команды перезагрузки в режим прошивки (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!)

Enter Recovery Mode

  • SM-A300F - Volume Up + Home + Power

https://desktop.firmware.mobi/

  • 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

CodenameVersionAPI level/NDK releaseLTS
Vanilla Ice Cream15API level 35RC
Updide Down Cake14API level 34latest
Tiramisu13API level 33LTS
Android12L12API level 32legacy
Android1212API level 31
Android1111API level 30
Android1010API level 29
Pie9API level 28
Oreo8.1.0API level 27
Oreo8.0.0API level 26
Nougat7.1API level 25
Nougat7.0API level 24
Marshmallow6.0API level 23
Lollipop5.1API level 22
Lollipop5.0API level 21
KitKat4.4 - 4.4.4API level 19
Jelly Bean4.3.xAPI level 18
Jelly Bean4.2.xAPI level 17
Jelly Bean4.1.xAPI level 16
Ice Cream Sandwich4.0.3 - 4.0.4API level 15, NDK 8
Ice Cream Sandwich4.0.1 - 4.0.2API level 14, NDK 7
Honeycomb3.2.xAPI level 13
Honeycomb3.1API level 12, NDK 6
Honeycomb3.0API level 11
Gingerbread2.3.3 - 2.3.7API level 10
Gingerbread2.3 - 2.3.2API level 9, NDK 5
Froyo2.2.xAPI level 8, NDK 4
Eclair2.1API level 7, NDK 3
Eclair2.0.1API level 6
Eclair2.0API level 5
Donut1.6API level 4, NDK 2
Cupcake1.5API level 3, NDK 1
(no codename)1.1API level 2
(no codename)1.0API level 1

Java

CodenameVersionLTS
Java 2565RC
Java 2465
Java 2365
Java 2265latest
Java 2165LTS
Java 2064
Java 1963
Java 1862
Java 1761LTS
Java 1660
Java 1559
Java 1458
Java 1357
Java 1256
Java 1155LTS (preffered)
Java 1054
Java 953
Java 852EOL
Java 751
Java 650
Java 549

-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

VersionLTS
ruby-3.4.0RC
ruby-3.3.4latest
ruby-3.1.6LTS
ruby-3.0.7EOL

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