четверг, 25 августа 2016 г.

Alcatel Idol 3 (4.7") 6039Y. Как получить root на Android 6.0.1?

Еще раз приветствую своих читателей и владельцев аппарата Alcatel Idol 3 4.7" 6039Y. С выходом официального релиза Android 6.0.1 Marshmallow у многих пользователей возникли затруднения при получении root-прав и прошивке zip-архива с SuperSU через TWRP. В большинстве случаев после применения zip'а с SuperSU аппарат уходил в bootloop и восстановить его можно было только переустановив прошивку. Вот один из комментариев пользователя Belayduz City, подтверждающий наличие проблемы (орфография и пунктуация автора сохранены): "скажите как установит ROOT на IDol3 C TWRP у меня был android 5 я поставил там с шапка а теперь прошел на 6 не могу после установки ROOT тел не включается.... скачал все рут прав но тоже самое со всеми буду благодарен если поможите".

Действительно, на прошивках с Android 5.x подобного поведения не наблюдалось, т.е. все что необходимо было сделать для получения root-прав - это прошить zip с SuperSU, на Android 6.x же, прошивка того же самого zip'а в большинстве случаев приводила к bootloop'у и невозможности загрузки ОС. На различных форумах, посвященных мобильным устройствам, можно было встретить многочисленные рекомендации и "истории успешной прошивки", например, рекомендовалось брать SuperSU определенной версии или же, например, производить установку архива с SuperSU не со внешней SD-карты, а только из внутренней памяти. Однако, все эти "шаманские советы" в каких-то случаях работали, а в каких-то нет. Именно это и послужило причиной написания данного поста, чтобы однозначно внести ясность в этот вопрос.

Итак, как вы уже поняли, для получения root нам будет необходим установленный TWRP Recovery, подробно останавливаться здесь на моменте прошивки TWRP я не буду, тем более что это уже неоднократно обсуждалось. Также вам потребуется zip-архив с SuperSU версии 2.74 и выше. В моем случае я использовал BETA-SuperSU-v2.74-2-20160519174328.zip. Многие облачные сервисы могут посчитать этот архив вредоносным, поэтому выкладывать его отдельно я не буду, тем более что его можно скачать на официальном сайте проекта chainfire.eu. Для тех кто подзабыл напомню, что последнюю версию zip'а с SuperSU всегда можно найти по следующим ссылкам: StableBetaLatest. С этим моментом мы тоже разобрались, предполагается что вы уже скачали zip с SuperSU и скопировали его на SD-карту или во внутреннюю память.

Далее загружаемся в TWRP и делаем следующее:



  • На запрос о разрешении модификации системного раздела отвечаем утвердительно, т.е. делаем Swipe вправо для разрешения модификаций.
  • Затем заходим в меню Advanced -> Terminal и в консоли вводим следующую команду - echo SYSTEMLESS=true >> /data/.supersu , так, как показано на скриншоте. Дополнительно можно проверить с помощью cat /data/.supersu все ли получилось. Если в ответ вы увидите строчку SYSTEMLESS=true - значит первую команду вы набрали верно.
  • Устанавливаем zip с SuperSU через опцию Install Zip и перезагружаем телефон.


Как видно, в логе при установке у нас есть строчка "System-less mode, boot-image support required" - это означает что мы все сделали верно. Телефон должен успешно перезагрузиться (возможно понадобится несколько перезагрузок), после чего SuperSU будет установлен, а root-права получены.

Благодаря использованию SYSTEMLESS=true образ boot.img в процессе установки SuperSU был модифицирован и пересобран. Если кому-то интересно какие изменения в boot произошли, вот часть из них:

  • Заменен бинарник sepolicy в корне ramdisk.
  • В fstab.goldfish для /dev/block/mtdblock0 добавлена опция noatime, т.е. было - ro,barrier=1, стало - ro,noatime,barrier=1.
  • В fstab.qcom аналогичное изменение в опциях для /dev/block/bootdevice/by-name/system, добавили noatime.
  • В init.environ.rc добавлена строка - export PATH /su/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/su/xbin:/system/xbin в on init.
  • В init.rc убрали установку свойства setprop selinux.reload_policy 1, а также добавили:
    
    # mount /data/su.img to /su
    on property:sukernel.mount=1
        mount ext4 loop@/data/su.img /su noatime
    
    # launch SuperSU daemon
    service daemonsu /sbin/launch_daemonsu.sh
        class late_start
        user root
        seclabel u:r:init:s0
        oneshot
    

    Этим кстати и объясняется названием метода systemless , как видно бинарник su у нас уже не хранится в /system. Хотя вообще-то подробный анализ всего этого дела - это отдельная история, которая не входит в рамки данного поста.
  • Удален verity_key.

Для тех кого интересует вопрос что такое systemless метод установки root в целом - рекомендую ознакомиться со статьей на How-To Geek: What Is “Systemless Root” on Android, and Why Is It Better?.

Ну а на этом все ... жду ваших комментариев с отзывами об успешном получении root на 6.0.1 на 6039Y ;)

17 комментариев :

  1. Спасибо Огромное... Благодарен вам от всего сердца

    ОтветитьУдалить
  2. есть кто мне такое сотворить в Москве ?

    ОтветитьУдалить
  3. Вроде все делал чётко по мануалу, в итоге bootloop.

    ОтветитьУдалить
    Ответы
    1. Вывод может быть только один - что-то вы сделали не по мануалу, либо версию SuperSU взяли древнюю, либо ошиблись где-то в процессе выполнения шагов инструкции, либо еще что-нибудь ... Расскажите подробно, желательно с приложением скриншотов, как и что вы делали - попробуем разобраться.

      Удалить
    2. Не знаю как тут правильно прикрепить фото, заранее извиняюсь !!!

      Удалить
    3. Фото можно выложить на любой файлообменник, например Google Drive, Яндекс.Диск, DropBox, а здесь просто разместить ссылку на него.

      Удалить
  4. Decker Спасибо что отозвались !

    Итак, TWRP прошился без проблем, далее отформатировал microSD в FAT32 и закинул на неё BETA-SuperSU-v2.74-2-20160519174328.zip. Вставил карту в смарт и загрузился в TWRP. Захожу Advanced -> Terminal, каталог выбираю external SD - куда предварительно положил supersu, жму select. в терминале набираю echo SYSTEMLESS=true >> /data/.supersu, затем проверяю ( cat /data/.supersu ) - получаю положительный ответ в виде SYSTEMLESS=true. Через INSTAL ставлю supersu, reboot - в результате bootloop... ждал долго, перезагружался несколько раз. Что делаю явно не так !!! Кстати в процессе установки supersu не было стадии Boot Image Patcher, как у Вас на скриншоте. Прошу помощи...

    ОтветитьУдалить
    Ответы
    1. Если стадии Boot Image Patcher у вас не было, значит установка SuperSU по каким-то причинам не была произведена в режиме systemless и в этом случае неудивительно что вы получили Bootloop. На всякий случай проверьте, чтобы раздел /data был у вас смонтирован в TWRP перед тем как вы выполняете все действия.

      Также, вы можете попробовать открыть zip с SuperSU, который вы используете и найти в файле \META-INF\com\google\android\update-binary в нем следующие строки:

      if [ -z "$SYSTEMLESS" ]; then
      # detect if we need systemless, based on Android version and boot image
      SYSTEMLESS=detect
      fi

      И заменить SYSTEMLESS=detect на SYSTEMLESS=true в этой строке. Если в вашем zip'е с SuperSU отсутствуют данные строки, значит у вас старая версия, которая не поддерживает systemless установку.

      Удалить
  5. Спасибо огромное за отзывчивость всё получилось! Просто раздел /Data не был смонтирован. С меня денежка на поддержку проекта. И ещё раз благодарю !!!

    ОтветитьУдалить
  6. Это не системный рут к сожалению. А как поставить системный?

    ОтветитьУдалить
    Ответы
    1. Что входит в ваше понимание словосочетания "системный root"?

      Удалить
    2. Я надеюсь это был сарказм или риторический вопрос от человека, который увлекается подобным и создал тут целую тему по этому поводу.
      systemless root (несистемный рут)
      Это такой способ получения рут-прав, при котором бинарники суперпользователя устанавливаются не в раздел /system, а в /su, в результате чего появляется возможность получать OTA-обновления стоковых прошивок даже при наличии проверки целостности системных блоков (а также быстро избавляться от рута и т. д. - более подробно всегда может рассказать всемогущий Гугл).

      Удалить
    3. СПАСИБО!!! Установил TWRP и ROOT на Alralel Idol 3 5.5(6045y)
      Все установилось без проблем.

      Удалить
  7. Отлично, все получилось. Спасибо огромнейшее)))
    p.s. до этого была беда: был root на 5м андроиде(черех kingroot), обновился до 6. Root слетел, а приложение осталось(как системное) и получается не удалить его.
    Благо нашел инфу как поставить twrp и root у вас на сайте.
    удалил))))

    ОтветитьУдалить
  8. Благодарю Вас. Все понятно написано.

    ОтветитьУдалить
  9. Получил рут 6039Y по этой инструкции, спасибо.
    Все нормально, но перестала работать основная камера (приложение "камера" показывает черный экран и вываливается через пару секунд, если не успеешь переключиться на фронтальную), Open Camera пишет "серьезная ошибка камеры). Фронтальная камера при этом работает нормально.

    Как переустановить драйвера камеры?

    ОтветитьУдалить
  10. Decker, красавучег %) приятно когда вот так случайно покупаешь этот идол на скорую руку, а потом оказывается что в киберпространстве один человек толково объясняет как на раз-два превратить этот аппарат в конфетку)

    ОтветитьУдалить