Разбитый экран и особенности Android’а.

Друг попросил вытащить контакты из телефона с разбитым экраном.
В принципе, ситуация сильно упрощается, если разбит только тачскрин, а экран при этом жив. В таком случае если телефон поддерживает OTG — подключаем обычную мышку через переходник и выполняем все необходимые действия глядя на экран телефона.
Но экран на переданном мне телефоне был мертв, как старуха-процентщица после роковой встречи с Раскольниковым.
И этот случай намного тяжелее, ковырять телефон можно только с помощью консоли или специальных программ.

Однако, тут возникает проблема №1: должна быть включена отладка по USB. Как можно было догадаться, предыдущий владелец ничего такого не включал (да и если бы включил — всех проблем это не решило, но об этом — ниже).
А включается отладка по USB следующим образом.
Для этого нам понадобится программа adb.exe, которую можно взять из Android SDK (и ещё множества мест — гугл в помощь).

  1. Перезагружаемся в recovery. Естественно, это приходится делать на ощупь. В принципе, всё должно заработать и со штатным recovery, но я после нескольких неудачных попыток прошил CWM, после чего стандартным сочетанием клавиш я всё-таки попал в recovery.
  2. На этом этапе телефон должен появиться в системе. А если вдруг драйвер телефона не нашелся, берем его отсюда и принудительно скармливаем его операционной системе, т.е. так:
    adb_drivers
  3. Проверяем, что adb видит наше устройство:
    adb.exe devices
    List of devices attached
    5230a115c4bf903b        recovery
  4. Далее из командной строки вводим следующие команды:
    adb shell
    echo "persist.service.adb.enable=1" >>/system/build.prop
    echo "persist.service.debuggable=1" >>/system/build.prop
    echo "persist.sys.usb.config=mass_storage,adb" >>/system/build.prop"
    reboot
    
  5. Последняя команда может не сработать, поэтому раз или два раза нажимаем power (в зависимости от типа recovery), чтобы выполнился пункт «Reboot system now».
  6. В принципе, можно не перезагружаться, а поковыряться в файловой системе, например достать файл контактов
    adb pull /data/data/com.android.providers.contacts/databases/contacts2.db c:\
    

    и потом сконвертировать его любым доступным способом. Но мы идём дальше!

  7. После перезагрузки пробуем что у нас получилось с USB-отладкой
    adb.exe devices
    List of devices attached
    5230a115c4bf903b        unauthorized
    

    Вот это unauthorized значит, что в теории мы должны разрешить с телефона подключение этого компьютера.
    Т.е. нажать OK на экране телефона в таком диалоге
    MPh73
    Увы, с мертвым экраном — это не наш случай.  А без этого какие-либо действия с телефоном с помощью adb вне recovery невозможны.

  8. Но решается это весьма просто. Берем любой работающий телефон на android’е, включаем там отладку USB, при появлении вышеуказанного вопроса ставим галочку и нажимаем ОК.
  9. Не отключая рабочий телефон, выполняем команду
    adb pull /data/misc/adb/adb_keys c:\
  10. Отключаем рабочий телефон, а телефон со сломанным экраном снова перезагружаем в recovery.
  11. Выполняем команду
    adb push c:\adb_keys /data/misc/adb

    и перезагружаем телефон способом из пункта 4 или любым другим.

  12. Теперь данный компьютер авторизован на телефоне, в чём можно убедиться с помощью команды
    adb devices
    List of devices attached
    5230a115c4bf903b        device
  13. Идём на http://www.moborobo.com,  скачиваем и устанавливаем данную программу.
    С её помощью можно делать разные вещи, в т.ч. и бэкап.
    android_backup
  14. Profit!

по мотивам forum.xda-developers.com