IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [220]
    Безопасность IT [484]
    Блоки питания, Power Banks, зарядки... [490]
    Видеорегистраторы [220]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [625]
    Измерительная техника, инструменты [449]
    Накопители данных [226]
    Нетбуки, Ноутбуки, Ультрабуки [680]
    Мультиварки, блендеры и не только... [158]
    Планшеты [758]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [357]
    Сети, сетевые технологии, оборудование... [269]
    Смартфоны [4966]
    Фотокамеры, объективы, искусство фотографии.. [543]
    Умный дом [47]
    Электронные книги [96]
    CB, LPD, PMR- связь... [171]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [4380]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1113]
    Smart TV, UltraHD, приставки, проекторы... [414]
    Smart Watch [263]
    Sound: наушники, плееры, усилители... [616]
    Windows 10... [298]
    Windows 11 [28]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1340
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2013 » Ноябрь » 20 » Обновляем Nexus 4 до Android 4.4 в Linux
    12:35
    Обновляем Nexus 4 до Android 4.4 в Linux

    Обновляем Nexus 4 до Android 4.4 в Linux

    Наверное, я не одинок в своем нежелании ждать OTA обновления телефона. Интересно же посмотреть, что нового в версии Android 4.4. Ниже я постараюсь описать максимально подробно процесс обновления прошивки в Linux системах. Надеюсь, это может быть кому-то полезно, так как большинство инструкций почти исключительно для Windows. Также постараюсь описать неочевидные грабли для некоторых ревизий Nexus 4.

    image

    Наступаем на грабли в Windows 7 x64/x86


    Почитав мануалы, вытащил образ Kitkat для Nexus 4 и Android SDK со всеми инструментами. Однако, к моему удивлению, проблема возникла там, где я ее никак не ожидал — не определялись драйвера для Windows 7 x64. Вначале попробовал установить пакет драйверов из Android SDK (достаточно отметить Google USB Driver Package для установки). Не распознается. Затем попробовал вытащить только пакет драйверов отсюда developer.android.com/sdk/win-usb.html. Результат тот же самый. Для очистки совести установил Universal Naked Driver 0.72 отсюда 4pda.ru/forum/dl/post/3529212/Universal_Naked_Driver_0.72.zip. В 32-битной системе результат аналогичный.
    Телефон приобретался непосредственно в период аттракциона невиданной щедрости на Google Play через форвардера. Было куплено 2 телефона 8 Gb версия для меня (ну нет у меня потребности хранить большие объемы мультимедиа) и 16 Gb версия для брата. Я был крайне удивлен, когда его телефон сразу же определился в системе. Сразу возникла мысль о идентификаторе устройства.

    Пара слов о USB-идентификаторах


    Каждое устройство USB имеет свой уникальный Vendor ID. Эти идентификационные номера выдаются некоммерческой организацией USB Implementers Forum (USB-IF). Внутри Vendor ID устройства подразделяются по Product ID. Так, как производителем Nexus'ов является Google, то все его устройства имеют VID 18d1. С PID оказалось несколько сложнее. Если заглянуть внутрь android_winusb.inf, на который ориентируется операционная система мы можем увидеть список устройств, для которых предназначен данный драйвер.
    ;Google Nexus One
    %SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02
    %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02&MI_01
    %SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E11
    %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E12&MI_01
    
    ;Google Nexus S
    %SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E21
    %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E22&MI_01
    %SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E23
    %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E24&MI_01
    
    ;Google Nexus 7
    %SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4E40
    %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E42&MI_01
    %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E44&MI_01
    
    ;Google Nexus Q
    %SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_2C10
    %SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_2C11
    
    ;Google Nexus (generic)
    %SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4EE0
    %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE2&MI_01
    %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE4&MI_02
    %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE6&MI_01
    


    Nexus 4 не упоминается, но 16 Gb версия совпадает по идентификационным номерам с Google Nexus (generic). Однако, с моим телефоном все оказалось не так. VID был d001, что не давало системе увидеть драйвер для него.

    Ищем новые грабли в Linux


    После этого последовало несколько нелогичное решение попробовать обновить прошивку в Linux окружении, так как ядро уже включает в себя необходимые драйверы для телефона. Развернул Kubuntu 13.10, чтобы получить ядро посвежее. Далее все по инструкции ниже:
    1) На телефоне в разделе «Для разработчиков» разрешаем отладку по USB.
    2) Определяем PID:VID устройства
    meklon@meklon-kubuntu:~$ lsusb
    Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 002 Device 002: ID 18d1:d001 Google Inc. 
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 003: ID 09da:9033 A4 Tech Co., Ltd X-718BK Optical Mouse
    Bus 004 Device 005: ID 046d:c225 Logitech, Inc. G11/G15 Keyboard / G keys
    Bus 004 Device 004: ID 046d:c221 Logitech, Inc. G11/G15 Keyboard / Keyboard
    Bus 004 Device 002: ID 046d:c223 Logitech, Inc. G11/G15 Keyboard / USB Hub
    Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    

    Нас интересует именно этот фрагмент — 18d1:d001 Google Inc.
    2) Linux не даст нам просто так доступ к нашему устройству. Для начала необходимо создать правила для udev (подробнее о системе ru.wikipedia.org/wiki/Udev).
    Создаем файл с правилами для нашего Nexus:
    sudo nano /etc/udev/rules.d/51-android.rules
    

    Вносим туда следующие строки:
    #Nexus 4
    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0660", GROUP="androiddev", SYMLINK+="android%n"
    3) Изменяем атрибуты:
    chmod a+r /etc/udev/rules.d/51-android.rules
    

    4) Перезапускаем udev:
    sudo service udev restart
    

    5) Создаем группу androiddev и добавляем текущего пользователя:
    sudo groupadd androiddev && sudo useradd -G androiddev username
    

    Это необходимо для полноценного доступа на запись и исполнение к нашему устройству.
    6) Добавляем необходимые для работы инструменты (вам не нужен полноценный SDK, если вы не планируете разработку на телефоне)
    sudo add-apt-repository ppa:nilarimogard/webupd8
    sudo apt-get update
    sudo apt-get install android-tools-adb android-tools-fastboot
    

    7) Для нормальной работы, начиная, кажется с версии 4.2, необходимо на самом телефоне подтвердить, что данный ПК является доверенным для отладки. При начале работы с adb не забудьте положительно ответить на этот вопрос на телефоне. Проверяем видимость устройства:
    # adb devices
    List of devices attached
    xxxxxxxxxxxxxxx device
    

    Все прошло успешно. В противном случае (старая версия adb, недоверенный ПК и т. п.) будет что-то вроде:
    # adb devices
    List of devices attached
    xxxxxxxxxxxxxxx offline
    

    8) Перезагружаем телефон в режим fastboot. На Nexus 4 это достигается нажатием одновременно увеличения и уменьшения звука вместе с power. Также можно отправить из консоли adb restart fastboot. Проверяем список подключенных устройств с помощью lsusb и обнаруживаем, что product id изменился! Значит, опять нужно править /etc/udev/rules.d/51-android.rules. В моем случае это был 4ee0.
    #Nexus 4
    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0660", GROUP="androiddev", SYMLINK+="android%n"
    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0660", GROUP="androiddev", SYMLINK+="android%n"
    

    Перезагружаем udev.
    9) В режиме fastboot adb не работает, поэтому проверяем список подключенных устройств следующим образом:
    fastboot devices
    

    Если вместо вашего устройства висит Waiting for devices, значит, нужно правильно подобрать Vendor ID/Product ID в udev конфиге.
    10) Качаем тот самый свежий образ с developers.google.com/android/nexus/images
    Распаковываем. В моем случае должны быть следующие файлы:
    bootloader-mako-makoz20i.img
    radio-mako-m9615a-cefwmazm-2.0.1700.84.img
    image-occam-krt16o.zip
    flash-all.sh

    11) Далее у нас два пути. Первый — разблокировка загрузчика с вайпом системы и полная прошивка. Второй — апдейт имеющейся системы.

    Первый вариант:

    1) Телефон в режиме fastboot.
    2) Проверили, что телефон виден fastboot devices
    3) Разблокируем загрузчик:
    fastboot oem unlock
    

    Соглашаемся на телефоне с вайпом данных
    4) Полная прошивка. Проще всего запустить готовый скрипт flash-all.sh
    sudo sh flash-all.sh
    

    5) Если все прошло хорошо — телефон в итоге включается девственно чистым с новой версией.

    Второй вариант:

    1) Переходим в режим bootloader из fastboot. Для этого выбираем соответсвующий пункт качельками громкости и включаем его кнопкой power.
    2) В результате любуемся картинкой прибитого андроида с открытым животом и… Все. В моем варианте дальше не получилось. По идее на этом этапе необходимо нажать одновременно громкость вверх и power, чтобы открылось меню, где выбирается «Apply update from ADB». У меня телефон просто включался. Но, допустим вам это удалось.
    3) На компьютере в окне командной строки ввести следующую команду:
    adb sideload xxxxxxxx.zip
    

    где xxxxxxxx.zip – это имя zip файла c прошивкой. После этого пройдет штатное обновление.

    Эпилог


    Успешно перешел на ART с Dalvik. Вроде все стало гораздо быстрее открываться, но точных измерений не проводил. Сенсор стал приятнее и точнее. В целом явных изменений на поверхности не видно. ART надо тестировать, но пока ничего не падает. Перекомпиляция заняла около 20 минут на 120+ приложений.

    PS. Помните, что любые неосторожные действия могут привести к «brick»-состоянию. Автор не несет ответственности за неправильные действия пользователей. Пожалуйста, всегда читайте инструкции на профильных ресурсах.

    http://habrahabr.ru/post/202876/
    Категория: Linux и не только | Просмотров: 653 | Добавил: laptop | Рейтинг: 4.0/1
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024