суббота, 12 ноября 2011 г.

Unroot Nexus Bliss Pad C7.2S [Android 2.2 Froyo]

Некоторое время назад я столкнулся с проблемой получения root-привилегий на довольно свежем планшете Nexus Bliss Pad C7.2S
Данное устройство было запущено только для российского рынка, но, при этом, хранит в себе все черты характерные для устройств на базе RockChip 2818. Главным образом - это read-only файловая система Cramfs.

Перейдем к сути вопроса.

Первым делом, нам нужно скачать образ оригинальной прошивки, который доступен по ссылке
Также потребуется любой дистрибутив OS Linux, например Ubuntu 11.04 (допустимо использование виртуальной машины).

Распаковываем архив BLISS72.rar в произвольное место.
Копируем образ ./BLISS/rockdev/Image/system.img на машину с OS Linux. Для этого можно воспользоваться, например, WinSCP.
Переходим на linux, открываем терминал. В появившееся приглашение вводим:
$ sudo -i
После выполнения данной команды, мы окажемся в каталоге /root под аналогичным пользователем.
Скачиваем пакет для работы с cramfs и ssh-сервер:
# apt-get install cramfsprogs openssh-server
Переносим образ system.img в каталог /root.
Далее создаем папку tmp в каталоге /root:
# mkdir tmp
Монтируем образ system.img:
# mount -o loop ./system.img ./tmp
Создаем еще одну директорию:
# mkdir filesystem
Рекурсивно копируем файловую систему устройства с примониторванного раздела в директорию filesystem:
# cp -r ./tmp/* ./filesystem
Копирование обязательно должно производиться от root! В противном случае, могут возникнуть проблемы с правами при заливке!

После всех проделанных действий, мы должны получить папку /root/filesystem, содержащий в себе распакованный образ system.img.

Отмонтируем tmp:
# umount /root/tmp

Далее нужно скачать бинарник su и приложение Superuser.apk для управления root-доступом.
Данную сборку можно скачать по ссылке (на момент написания данного поста, версия была 2.3.6.1)
Качать нужно архив для Eclair/Froyo.

Распаковываем архив, и копируем его содержание следующим образом:
# cp su-2.3.6.1-ef-signed/system/bin/su /root/filesystem/system/bin
# cp su-2.3.6.1-ef-signed/system/app/Superuser.apk /root/filesystem/system/app
Создаем директорию xbin в корне каталога ./filesystem:
# mkdir ./filesystem/xbin
Даем права:
# chmod 777 ./filesystem/xbin
Копии бинарников su и sh должны быть в папках bin, sbin и xbin:
# cp ./filesystem/bin/su ./filesystem/xbin
# cp ./filesystem/bin/sh ./filesystem/xbin
# cp ./filesystem/bin/su ./filesystem/sbin
# cp ./filesystem/bin/sh ./filesystem/sbin
Выставляем права (это очень важный момент всего предприятия, на поиск которого у меня ушло немало времени):
# chmod 6755 ./filesystem/bin/su
# chmod 6755 ./filesystem/sbin/su
# chmod 6755 ./filesystem/xbin/su
# chown -R root:root ./filesystem/bin
# chown -R root:root ./filesystem/sbin
# chown -R root:root ./filesystem/xbin
Вся важность в данном моменте заключена в атрибуте команды chmod 6755 - SUID, который позволяет запуск файла с правами владельца. Если просто задать права 755, то вызов su выдаст Permission deny, без каких-либо отражений в логах трассировцика системных вызовов. Поскольку изначально я производил изменения в программе NewTuxFlash, идущей в комплекте с прошивкой, то данный момент остался за бортом. Утилита дает возможность установки только штатного chmod rwxrwxrwx.

Часть дела сделана.
Запаковываем нашу измененную прошивку обратно в образ cramfs:
# mkcramfs ./filesystem ./system_tmp.img
Еще один важный момент - образ обязательно должен быть подписан. Для этого используется утилита rkcrc, входящая в комплект rkutils
После закачки исходников, утилиту rkcrc нужно собрать:
# gcc ./rkcrc.c -o ./rkcrc
Подписываем наш образ:
# ./rkcrc ./system_tmp.img ./system.img

Копируем образ и переходим в OS Windows.

Загружаем планшет в режим recovery. 
Для этого, при выключенном питании, нужно зажать крайнюю правую кнопку сверху одновременно с кнопкой питания на ~3 секунды, после чего воткнуть miniUSB разъем и отпустить обе кнопки. Если все сделано верно, то экран планшета останется выключенным, но система найдет новое устройство.
Драйвер под x32 и x64 находятся в корне архива BLISS72.rar\BLISS\281xDriver, скаченного ранее.

Сам процесс прошивки довольно тривиален:
Запускаем BLISS72.rar\BLISS\BLISS_PAD C7.2 Tool\BlissTool.exe
Если драйвер установлен и планшет находиться в режиме recovery, то в нижней части окна программы появится надпись - Обнаружен Bliss Pad C7.2S.
Если данная надпись присутствует, ставим галочку напротив Loader (остальные уже должны быть установлены, кроме backup, который нам не требуется), и указываем путь к нашему образу system.img.
Нажимаем "Обновить".
Ждем завершения копирование прошивки на планшет. 
После заливки произойдет автоматический рестарт устройства, и на его UI можно будет следить за ходом перепрошивки.

Удачи!
Читать дальше...

21 комментарий:

  1. root@artem-System-Product-Name:~# mount -o loop ./system.img ./tmp
    mount: вы должны указать тип файловой системы
    завис на этом
    не могли бы вы выложить готовый system.img? Спасибо.

    ОтветитьУдалить
  2. Не вопрос:
    http://narod.ru/disk/33699181001/Work_Final_rooted_img_BlissPad_c7.2S.zip.html

    ОтветитьУдалить
  3. нужна помощь планшет видит,
    при заливке выдаёт ошибку:
    сбой тестирования оборудования.
    что нужно сделать???

    ОтветитьУдалить
  4. Убедитесь, что при прошивке аппарата ему хватает питания, попробуйте запустить процесс прошивки, подключив его не только по USB, но и воткнув шнур питания для зарядки.

    ОтветитьУдалить
  5. да, еще... не забываете ли перед подключением кабеля USB зажимать кнопку ESC?

    ОтветитьУдалить
  6. Не удаётся сделать это самому. рут не работает =(
    беру работающий образ, распаковываю, запаковываю по новой и заливаю в планшет - рута уже нет. пробовал и права на бинарники еще раз прописывать - не помогло
    Делал все согласно инструкции, за исключением названий папок в /root, ну и бинарники су уже были в исходном систем.имж

    манипуляции проводил в Linux Mint, Ubuntu 11.10

    ОтветитьУдалить
  7. Решилась проблема
    делал так:
    chmod 06755 ./system_new/bin/su
    и вообще не делал так:
    chown -R root:root ./system_new/bin

    ОтветитьУдалить
  8. 2 skypiece: предлагаю дополнять тему, созданную на 4pda, так как данный домен скоро будет недоступен :)

    ОтветитьУдалить
  9. а можно скинуть готовую прошивку уже с рутом?

    ОтветитьУдалить
  10. смотрите сообщение от Dec 8, 2011 01:37 AM

    ОтветитьУдалить
  11. Этот комментарий был удален автором.

    ОтветитьУдалить
  12. Этот комментарий был удален автором.

    ОтветитьУдалить
  13. Сбой тестирования оборудования. Подключаю со шнуром питания, но все равно ошибка, сбой.

    ОтветитьУдалить
  14. "попробуйте запустить процесс прошивки, подключив его не только по USB, но и воткнув шнур питания для зарядки.да, еще... не забываете ли перед подключением кабеля USB зажимать кнопку ESC?" - все эти действия мной были проделаны,но всё равно выдает сбой тестирования.

    ОтветитьУдалить
  15. а как устройство отпределяется в "Диспетчере Устройств", когда подключаете планшет с зажатой кнопкой ESC?

    ОтветитьУдалить
  16. Странно, должно быть все в порядке...
    У меня такое сообщение появлялось несколько раз, но после того как я сначала удалил все из памяти планшета, сменил кабель USB и переустановил программу "BLISS_PAD_C7.2_Tool" все прошло...
    Попробуйте выполнить такие же действия, и если не поможет, то сделайте скриншот окна с логом программы BlissTool.

    ОтветитьУдалить
  17. спасибо большое,...все получилось...запустила программу "BLISS_PAD_C7.2_Tool" от имени администратора,...

    ОтветитьУдалить
  18. Отлично! Спасибо за информацию, так как на 4pda люди сталкиваются с такой же проблемой.

    ОтветитьУдалить
  19. Возможно ли прошить BLISS_PAD_C7.2s до android 2.3 (очень нужно) или же поставить на него ubntu server ? хочу его как LAMP использовать.

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