Фотосфера на Xiaomi Mi6 с помощью Google Camera

Невинное, казалось бы, желание снять на смартфон фотосферу привело меня к тернистому пути и грустным размышлениям о совместимости софта в эпоху открытых стандартов и OpenSource:

Крупные производители смартфонов (Google, Samsung, Xiaomi, Microsoft и т.д.) пошли по стопам Apple и каждый создает свою экосистему приложений и сервисов (например, у каждого производителя есть своя система резервного копирования информации с телефона, у некоторых своя платежная система и т.д.) Суть в том, чтобы пользователям было комфортно находиться внутри экосистемы, где есть все, что нужно для жизни. Но как только ты пытаешься перейти границу, то это боль и страдание. И тут три варианта:

  • Полностью переходить на другую систему, что связано со значительными денежными и временными затратами на период привыкания;
  • Забить;
  • Ежик на кактусе)

Дальше я опишу свой путь к счастью, т.к. на меня он произвел неизгладимое впечатление по времени, интеллектуальным усилиям и нервным затратам) Но большинству моя история не поможет т.к. ряд шагов должен быть уникальным в зависимости от производителя, модели телефона, версий прошивок и используемых приложений…

Фотосферы умеет снимать Google StreetView, но сохраняет их только в своем сервиса, а мне хотелось сделать собственную коллекцию. Интернет показал, что есть выбор приложений для съемки панорам 360, а вот фотосферы умеет снимать Goggle Camera ) Ну и ладно, сделали offline приложение и на том спасибо, иду в PlayMarket…

и вот тут началось…

Осознание задачи:

  1. Иду в PlayMarker, нашел Google Camera, но загрузить не дает, пишет — несовместимое устройство… Странно телефон (Xiaomi Mi6) новый, Андроид свежий, иду на форумы…
  2. Говорят, что действительно, с PlayMarket Google Camera устанавливается только на гуглофоны, а остальные должны качать apk c альтернативных сайтов
  3. Ok нашел, скачал — не запускается, попробовал несколько версий — не запускается, вылезают какие-то ошибки в Java
  4. Опять иду на форумы, действительно говорят, чтобы запустить Google Camera на смартфоне должно быть активировано (что бы это ни значило) «Camera 2API»
  5. Проверить наличие «Camera 2API» можно приложением Manual Camera — запускаю, все красное…
  6. Смотрим дальше — чтобы активировать «Camera 2API» надо для начала зарутить смартфон, приехали… рутить не хочется, т.к. pros меня не вдохновляют, а вот cons настораживают:
    • потеря гарантии
    • больше уязвимость для вирусов
    • ряд программ не запускаются, например банковские
  7. О на форуме Xiaomi говорят, что для данной задачи есть вариант без рута, т.к. надо всего добавить один параметр в конфиг! Отлично!
  8. Но для начала процедуры нужно проделать 3 подготовительных действия:
    • На смартфоне сделать Unlock bootloader
    • Установить на компе adb and fastboot
    • На смартфоне установить Twrp
  9. Было бы проще, если бы я знал, что это за неведомые слова… )
  10. Начинаю разбираться… во всех инструкциях предупреждают, что на каждом шаге телефон может превратиться в brick, поэтому делаю бекап и иду осторожно…
  11. Unlock bootloader

  12. bootloader — это такая короткая программа, которая при включении запускает смартфон в разных режимах:
    • обычная загрузка
    • fastboot — голый Linux
    • recovery — программа для восстановления. Вот для ее изменения и нужно разблокировать bootloader.
  13. Инструкция для разблокировки bootloader Xiaomy: https://androidp1.ru/razblokirvat-bootloader-xiaomi/
  14. Создаю Mi Account
  15. Посылаю запрос китайцам на разрешение разблокировки. Пишут что запрос может обрабатываться несколько дней..
  16. Повезло — SMS с разрешением получил на следующий день!
  17. В настройках смартфона активизирую «Developer options»
  18. Включаю «Debug по USB»
  19. Скачиваю с сайта программу для разблокировки — есть только для винды
  20. Запускаю, пытаюсь сделать unlock
  21. Не получается — говорит надо связать устройство и Mi Account
  22. Ok иду в developer опции, пытаюсь связать, не получается — вылезает ошибка с загадочным номером и расшифорвкой иероглифами
  23. Иду на форумы, ага все понятно — на телефоне установлена прошивка Global, а для разблокировки нужна Develp
  24. Ok, скачиваю прошивку Develp. Прошивки для Mi6
  25. Начинаю обновлять — смартфон пишет, что все данные точно потеряю…
  26. Делаю еще раз бекап на Google и Mi Account.
  27. Перепрошил, при начальной загрузке восстановил данные с бекапов. Неплохо — для восстановления остатков всего нужно час — два.
  28. Получилось связать устройство и Mi account!
  29. Радостно запускаю unloсk, опять ошибка — теперь просят подождать еще 71 час до следующей попытки разблокировки. Ребята подстраховались с запасом)
  30. Выдыхаю, жду 3 дня…
  31. Запускаю unlock, нажимаю заветную кнопку — bootloader разблокирован! Но, устройство опять чистое, привычно восстанавливаю из бекапа…
  32. Установить на компе adb and fastboot

  33. Это такие специальные программы:
    • adb — для управления телефоном с компа, например загрузить, скачать файлы, перегрузить в разных режимах
    • fastboot — для прошивки телефона
  34. Для Linux установка вообще не проблема — запускаю стандартные yum install
  35. Изучаю команды adb и fastboot ну все вроде понятно, привычная консоль Linuxa:
  36. Устанавливаю Twrp на смартфон

  37. Twrp — это альтернативный программа для восстановления смартфонов:
  38. Ну разумеется надо найти версию для своего:
  39. Подсоединился по USB к компу
  40. Проверяю, устройство есть в списке:
    • adb devices
  41. Загрузился в fastboot командой:
    • adb reboot-bootloader
  42. Проверяю:
    • fastboot devices
  43. Прошиваю Twrp:
    • fastboot flash recovery twrp.img
  44. Перегружаюсь в Recovery, надо еще прошить lazyflasher
  45. lazyflasher — это такой патч, чтобы родная прошивка не сносила Twrp, как чужеродную программу
  46. lazyflasher был скопирован на внутреннюю память, но доступа к внутренней памяти у Twrp нет…
  47. Ну и ладно — Android — это же Linux, а там есть tmp, копирую, запускаю оттуда — все теперь в качестве recovery у меня Twrp
  48. Активизация «Camera 2API»

  49. Можно переходить к полезной работе, которая заключается в добавлении одной строки в файл build.prop
  50. Скачиваю build.prop со смартфона
    • adb pull /system/build.prop
  51. Добавляю строку
    • persist.camera.HAL3.enabled=1
  52. Сохраняю
    • adb push build.prop /system/
  53. ставлю правильные права
    • adb shell
    • chmod 644 /system/build.prop
  54. Перегружаю, запускаю проверку телефона (Manual Camera) — все красное, поддержки нет…
  55. Прошивка заново

  56. Думаю… из общих соображений понятно, что исправить файл конфигурации мало, надо еще или библиотеки обновить или прошивку другую…
  57. Ищу на форумах, ничего конкретного, решил для начала поставлю первоначальную прошивку Global…
  58. Скачал из ранее найденного места
  59. Скопировал на внутреннюю память, запустил перепрошивку
  60. После перезагрузки процесс прошивки перехватил Twrp, а у него нет доступа к внутренней памяти, прошивка слетела, телефон перестал загружаться…
  61. Вот и первый кирпич…
  62. Скопировал прошивку в tmp, думал как с lazyflasher поможет. Запустил оттуда — та же проблема, перепрошивка слетает…
  63. Смотрим на форумах да есть такая проблема у Twrp, дело в том что внутренняя память зашифрована и для доступа надо ввести пароль, я бы рад но негде, советы не помогают:
  64. Думаем… решил действовать радикально, т.к. терять уже нечего — форматирую внутреннюю память, в результате шифрование снимается — доступ у Twrp есть
  65. Копирую, на внутреннюю память прошивку
  66. Запускаю процесс, прошилось успешно!
  67. Повторяю все шаги заново:
  68. Восстановил из бекапа данные
  69. Установил twrp и lazyflasher.zip
  70. отредактировал build.prop
  71. перегрузил
  72. Запустил Manual Camera — не верю глазам все зеленое!
  73. Радостно скачал последнюю Google Camera
  74. Установил — не работает, т.к. нужен 8 Andriod, а в этой прошивке 7…
  75. Скачал версии за последний год, начал устанавливать последовательно
  76. И вот чудо версия за июль 2017 года заработала!
  77. Первая сфера, правда для просмотра надо загружать на Google+, но это уже мелочи:
  78. The happy end!
  1. Еще немного ссылок:

  2. Инструкция для установки TWRP Recovery for Redmi Note
  3. TWRP 3.2.1-0 for Xiaomi Mi6
  4. Google Camera загрузки
  5. “Установка Google Camera с режимом HDR+ на Xiaomi”
  6. [Tools, Tips & Tutorials] [GUIDE] TWRP, Magisk, Unlock Bootloader, relock, root, flash, update from A to Z
  7. Прошивки для Mi6
  8. Unlock bootloader
  9. Enable Camera2 API Without Root
  10. Enable Camera 2 API in Rooted MI Device
Запись опубликована в рубрике Статьи, Хобби. Добавьте в закладки постоянную ссылку.