Mobile Guide

Резервное копирование Android без облачных сервисов

Копия данных телефона на свой компьютер без загрузки в чужое облако. ADB, отладка по USB и что из этого реально работает в современных версиях Android.

Проверено: Android 13, 14; adb 35.0 Версия: Android Platform Tools 35 Нужно знать: Базовая работа в терминале, режим разработчика на телефоне
Резервное копирование Android без облачных сервисов

Облачный бэкап удобен, но данные оказываются на чужих серверах. Локальная копия решает ту же задачу, оставляя всё у вас.

Что реально можно сохранить

Начнём с ограничений, чтобы не тратить время впустую.

Данные Без root
Фото, видео, документы Да, полностью
APK установленных приложений Да
Данные приложений Нет, если приложение это запретило
SMS и журнал звонков Через сторонние приложения
Контакты Да, экспортом в vCard
Настройки системы Нет

Предупреждение. Команда adb backup объявлена устаревшей и в Android 12 и новее почти не работает: большинство приложений помечены allowBackup="false". Не рассчитывайте на неё как на основной способ.

Шаг 1: подготовка

Установите platform-tools на компьютер:

sudo apt install -y android-tools-adb

На телефоне: Настройки → О телефоне → семь раз нажать «Номер сборки» → вернуться в Настройки → Для разработчиков → включить «Отладка по USB».

Подключите кабелем и проверьте:

adb devices

На телефоне появится запрос на разрешение отладки — подтвердите. Устройство должно отображаться со статусом device, а не unauthorized.

Шаг 2: копирование файлов

Весь внутренний накопитель:

mkdir -p ~/android-backup/$(date +%Y%m%d)
cd ~/android-backup/$(date +%Y%m%d)
adb pull /sdcard/ .

Только фото и видео — быстрее:

adb pull /sdcard/DCIM/ .
adb pull /sdcard/Pictures/ .
adb pull /sdcard/Movies/ .
adb pull /sdcard/Download/ .

Посмотреть, что вообще есть:

adb shell ls -la /sdcard/

Оценить объём заранее:

adb shell du -sh /sdcard/

Шаг 3: сохранение APK

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

adb shell pm list packages -3

Путь к APK конкретного приложения:

adb shell pm path com.example.app

Скачать все пользовательские APK одним скриптом:

mkdir -p apk && cd apk
for pkg in $(adb shell pm list packages -3 | sed 's/package://' | tr -d '\r'); do
  path=$(adb shell pm path "$pkg" | head -1 | sed 's/package://' | tr -d '\r')
  echo "Сохраняю $pkg"
  adb pull "$path" "${pkg}.apk" 2>/dev/null
done
cd ..

Конструкция tr -d '\r' обязательна: adb возвращает строки с символом возврата каретки, из-за которого пути не находятся.

Шаг 4: контакты

Надёжнее всего через встроенный экспорт: Контакты → Меню → Импорт/Экспорт → Экспорт в файл VCF. Файл окажется в /sdcard/, оттуда заберите его через adb pull.

Шаг 5: SMS и звонки

Без root системные базы недоступны. Рабочий путь — приложение SMS Backup & Restore из F-Droid или Google Play: оно создаёт XML-файл в /sdcard/, который вы забираете через adb.

Шаг 6: автоматизация через rsync

Регулярный бэкап удобнее делать скриптом, который копирует только изменения:

#!/usr/bin/env bash
set -euo pipefail

DEST="$HOME/android-backup"
DATE=$(date +%Y%m%d)

if ! adb devices | grep -qw device; then
    echo "Устройство не подключено или не авторизовано"
    exit 1
fi

mkdir -p "$DEST/current"

for dir in DCIM Pictures Movies Download Documents; do
    echo "Синхронизирую $dir"
    adb pull -a "/sdcard/$dir" "$DEST/current/" 2>/dev/null || true
done

echo "Готово: $DEST/current"
du -sh "$DEST/current"

Ключ -a у adb pull сохраняет временные метки файлов — это позволяет при повторном запуске пропускать уже скопированное.

Шаг 7: шифрование копии

Фотографии и документы — чувствительные данные. Если архив хранится не только на вашем компьютере:

tar czf - ~/android-backup/current | \
  gpg --symmetric --cipher-algo AES256 -o android-backup-$(date +%Y%m%d).tar.gz.gpg

Расшифровка:

gpg --decrypt android-backup-20260915.tar.gz.gpg | tar xzf -

Проверка результата

du -sh ~/android-backup/current
find ~/android-backup/current -type f | wc -l
find ~/android-backup/current -name "*.jpg" | wc -l

Сравните число файлов с тем, что показывает телефон — расхождение означает, что часть данных не скопировалась.

Возможные проблемы

Устройство в статусе unauthorized

Не подтверждён запрос на телефоне. Отключите кабель, включите заново, посмотрите на экран телефона. Если запрос не появляется:

adb kill-server
adb start-server
adb devices

Устройство не определяется на Linux

Нужны правила udev. Узнайте идентификатор производителя:

lsusb

Создайте правило:

echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", MODE="0666", GROUP="plugdev"' | \
  sudo tee /etc/udev/rules.d/51-android.rules
sudo udevadm control --reload-rules

adb pull обрывается на больших объёмах

Копируйте по каталогам, а не всё сразу. Проверьте, что кабель поддерживает передачу данных — многие зарядные кабели передают только питание.

Итог

Реально работающая схема без root: adb pull для медиа и документов, скрипт для сохранения APK, встроенный экспорт для контактов, стороннее приложение для SMS. Данные приложений без root получить нельзя — это ограничение Android, а не инструмента.