ARM в Android: что это и почему это важно

Коротко: если устройство показывает arm64‑v8a или имеет ro.product.cpu.abilist64 — ставьте arm64 (gsi_arm64 / arm64‑прошивку); если только armeabi‑v7a — выбирайте 32‑битный образ. Неподходящая архитектура приводит к отказу загрузки или нестабильности.

Как проверить архитектуру и совместимые ABI — проверенные методы

  1. Через ADB (самый точный метод):
  • adb shell getprop ro.product.cpu.abi
  • adb shell getprop ro.product.cpu.abilist
  • adb shell getprop ro.product.cpu.abilist32
  • adb shell getprop ro.product.cpu.abilist64
  1. Дополнительно:
  • adb shell cat /proc/cpuinfo — модель SoC и режим ядра.
  • adb shell uname -a — иногда показывает aarch64/armv7l.
  • fastboot getvar all — информация о продукте и загрузчике.

Если ro.product.cpu.abilist64 пустой, а abilist содержит только armeabi‑v7a — система фактически 32‑битная или работает в 32‑битном userspace. Проверяйте оба свойства.

Как выбрать образ/прошивку — чек‑лист перед флешем

  1. Определите ABI — если есть arm64‑ввод, выбирайте arm64‑образ.
  2. Выберите тип образа:
    • Официальная прошивка производителя для вашей модели/регионального кода — приоритет, если доступна.
    • GSI — только для устройств с Project Treble (Android 9+) и совместимой конфигурацией (A/B, AVB, binder‑bitness). Для 64‑битных устройств берите gsi_arm64.
    • Кастомные прошивки — предпочтительны, если они адаптированы под конкретную модель (учитывают vendor).
  3. Сверьте версии bootloader/vendor и требования образа (binder‑bitness, AVB).
  4. Проверьте статус загрузчика (fastboot) и наличие разблокировки, совместимость подписей.
  5. Сделайте полный бэкап (Nandroid, userdata snapshot) и подготовьте план отката.

Не прошивайте 32‑битный образ на устройство, которое однозначно показывает arm64‑v8a и не имеет 32‑битной abilist — возможен bootloop или отказ загрузки.

Когда какой образ выбирать

СитуацияВыбор образаКомментарий
Современный телефон с arm64arm64 / gsi_arm64 / официальная arm64‑прошивкаЛучше производительности и совместимости с 64‑битными библиотеками
Старый телефон (armeabi‑v7a)arm / 32‑битная официальная прошивка64‑битный образ не загрузится
Устройство на Intelx86 / x86_64Только для редких Intel‑устройств
Тест GSI на Treble‑устройствеgsi_arm64 (если 64‑бит)Убедитесь в поддержке A/B и AVB

Частые ошибки

  • Игнорирование ro.product.cpu.abilist* и попытка поставить неподходящий ABI.
  • Непроверенный fastboot/bootloader: закрытый загрузчик или несоответствующие подписи.
  • Отсутствие бэкапа перед прошивкой.
  • Попытка поставить чистый GSI на устройство без поддержки Project Treble или без учёта binder‑bitness.

FAQ

  • Можно ли запускать 32‑битный APK на arm64‑устройстве?
    Да, если система поддерживает 32‑битный userspace (проверьте ro.product.cpu.abilist). Но некоторые сборки отключают 32‑битную поддержку.
  • Что выбрать: GSI или кастомная прошивка?
    GSI хорош для теста чистой AOSP и совместимых Treble‑устройств; кастомные ROMы (Lineage и др.) лучше адаптированы под конкретную модель и стабильнее для ежедневного использования.
  • Как понять, что SoC поддерживает 64‑бит?
    Модель SoC (Snapdragon/Exynos/MediaTek) обычно указывает поддержку ARMv8+, но окончательное решение даёт системная сборка — смотрите ro.product.cpu.abilist*.

Короткий набор команд (копировать в терминал)

  • adb shell getprop ro.product.cpu.abi
  • adb shell getprop ro.product.cpu.abilist
  • adb shell getprop ro.product.cpu.abilist64
  • adb shell cat /proc/cpuinfo
  • fastboot getvar all

Итог: выбирайте образ по данным ro.product.cpu.abilist* и типу устройства (официальная прошивка → кастом/адаптированный ROM → GSI только при совместимости Treble). Перед прошивкой сделайте бэкап и проверьте состояние загрузчика; при сомнениях пришлите вывод getprop — помогу выбрать конкретно для вашей модели.