Мегаквест: root и Leanageos 14.1 на Xiaomi Mi4c

Телефон уже не поддерживается сяоми, и из-за этого у меня возникла куча проблем:

Главная — я не смог разблокировать загрузчик при помощь MiUnlock, Постоянно получал «не удаётся верифицировать устройство»

Досадно, что в последней официальной прошивке, нет пункта «Device Unlock Status» в меню «Средства разработки», и не смотря на то, что заявка проходит, MiUnlock не работает.

Итак, итоговый квест по шагам:

Шаг 1: разблокировать загрузчик

Шаг 2: установить TWRP

Шаг 3: Найти и прошить LeanageOS 14.1

Разблокировать загрузчик

Так как официальный путь нам недоступен, я воспользовался вот этой инструкцией, с небольшой модификацией.

Итак, как и в исходниках, нам понадобится

Порядок действий, которым я пользовался, почти соответствует исходной инструкции, с некоторыми поправками и дополнениями:

  1. Установить ADB, драйверы и Fastboot
  2. Установить MiFlash
  3. Распаковать образ прошивки так, чтобы увидеть папку images
  4. Перезапустить телефон в Fasboot («Громкость -» + «Вкл»). На экране появится заяц и надпись «FASTBOOT»
  5. Запустить командную строку и выполнить «fastboot oem edl». У меня этот пункт не сработал, но я продолжал двигаться дальше, и всё закончилось хорошо.
  6. Прошить образ с разблокированным загрузчиком при помощи MiFlash (Запустить MiFlash, выбрать распакованную на шаге 3 папку images, выбрать «Flash all» внизу окна и запустить прошивку)
  7. Когда прошивка успешно закончится, снова перезапустить телефон в Fastboot и в командной строке выполнить «fastboot oem unlock»

Всё. Мы получили телефон с разблокированным загрузчиком и китайской прошивкой без Play Market, которой невозможно пользоваться 🙂

Проверить статус анлока можно из Fastboot, введя в командной строке

fastboot oem device-info

Осталось сделать телефон комфортным для использования 🙂

Установить TWRP

  • Сохранить img-файл twrp в каталог без пробелов и русских букв в пути, или рядом с исполняемым файлом fastboot
  • Запустить командную строку и перейти в папку с сохранённым файлом img
  • Так как fastboot у нас уже установлен, просто перевести телефон в FASTBOOT (на выключенном телефоне нажимаем «Громкость -» + «Вкл»)
  • Выполнить последовательно:

fastboot flash recovery %recovery%.img

fastboot boot %recovery%.img

Где %recovery% — имя скаченного файла.

После выполнения второй команды телефон должен перезапуститься в TWRP. Можно устанавливать LeanageOS

Установить LeanageOS 14.1

На самом деле, можно ставить и 15.1 и 14.1.

14.1 уже довольно сложно найти, с официального сайта его уже убрали. Я взял образ здесь. (локально: образ, хэш)

По этому, в большинстве случаев, вам подойдёт 15.1 из вот этой темы на XDA (локальная копия). Единственное, что мне помешало ей воспользоваться — нормально не работает многопользовательский режим. У второго пользователя постоянно падает приложение «первоначальная настройка телефона».

Так мне необходимо использовать многопользовательский режим, чтобы разделять рабочие и личные аккаунты, мне пришлось найти и поставить 14.1, в котором всё супер. Базовая инструкция в этой теме на XDA

Так как TWRP уже поставлен и работает из предыдущего шага, осталось сделать следующее:

Подготовить следующее:

  1. Нужный образ LeanageOS
  2. OpenGApps подходящие именно вам
    1. Для 14.1 ARM64, 7.1, pico (nano)
    2. Для 15.1 ARM64, 8.1, pico (nano)
  3. AddonSU, если вам понадобится рут в LeanageOS (ARM64, версия дополнения должна соответствовать версии ОС) (локально)
  4. Firmware от 8.5.1.0 от XIAOMI (локально)

Маленькое отступление. Я предпочитаю pico GApps, потому что в качестве системного ставится только необходимый минимум, необходимый для запуска PlayMarket, но вы можете выбрать любой другой доступный вариант.

Перезагрузиться в TWRP («Громкость +» + «Вкл»)

Подключить телефон к компьютеру, в TWRP, перейти в Advanced WIPE, установить все галочки и выполнить Wipe (System, Data, Cache, Dalvik Cache, Internal Storage)

После этого шага вы получаете кирпич, который не загрузится 🙂 Хорошо, что TWRP обеспечивает подключение Internal Storage, как съёмного устройства.

По этому:

Скопировать подготовленные файлы (образ, GApps, AddonSU, firmware) на телефон, подключенный к компьютеру

Последовательно установить все образы, не перезагружая устройство

  • firmware
  • образ
  • OpenGApps
  • addonsu

Как ни странно, последовательность важна.

Всё! Система стоит, телефон работает. Быстро, надёжно, ничего лишнего.

Установка freeswitch в ubuntu 16.04, нюансы

В официальном руководстве пропущен важный пункт:

после первого шага надо выполнить

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1FDDF413C2B201E5

Чтобы добавить открытый ключ. Без этого apt будет считать репозиторий недоверенным, и не даст установить freeswitch

КаК расшарить папку из скрипта Powershell

Если у вас Windows 8 или свежее, всё очень и очень просто. В этих ОС есть готовый модуль для PowerShell. Расшарить папку очень просто:

New-SmbShare -Name $sharename -Path $sharepath -ContinuouslyAvailable 0 –FullAccess Все

Где

  • $sharename — имя шары
  • $sharepath — путь к шаре
  • ContinuouslyAvailable — доступность после перезагрузки (0 — недоступны, 1 — доступны)
  • –FullAccess — полный доступ

В более ранних версиях, без небольших танцев с буном не обойтись. Необходимо использовать утилиту командной строки net share

В скрипте надо сформаровать переменную, содержащую имя и путь к шаре, вида

sharename=DISK:\\sharepath

например

$sharename = "mainshare"
$sharepath = $volumeletter + ":\main"
$sharecmd = $sharename+'='+$sharepath

И после этого, можно запустить net share

net share $sharecmd --% /GRANT:all,FULL

Что тут важно?

  1. «—%» — все переменные слева от этой последовательности powershell преобразует в значения до запуска команды
  2. Из powershell в командную строку плохо передаются русские символы, да и вообще, все национальные символы, по этому, если надо добавить доступ служебной группе «Все», самый простой способ выкрутиться:
    1. Создать группу All
    2. Сделать членом группы All, группу Все 🙂

Поиск текста в файлах (grep)

В первую очередь, для себя, чтобы не забыть:

Для поиска текста в файлах, рекурсивно (в примере ищем строку в php:

grep --include=\*.php -rnw '/path /to/somewhere/' -e "pattern"

Очень удобно для поиска классов блоков в струтуре файлов битрикса 🙂

Пользователям старых маков

Если вы, как и я любите работать за древним маком, вы наверняка используете Cord для подключения удалённому рабочему столу.
При подключении к машинам с Windows Server 2012 и более поздним, может пропадать или «залипать» на каком-то состоянии курсор мыши.
Решение проблемы очень простое: надо снять галочку «Включить тень указателя», на вкладке «указатели», раздела «мышь» панели управления.
Просто снимите галочку, ОК, и… Победа. Мышь ведёт себя как надо 🙂

Новороссийск.

Сижу в Новороссийске, смотрю в окно на море.

Пляж в центре города, катер береговой охраны чуть в отдалении.

Горы на горизонте.

Пирсы.

Корабли.

Как ты формировалось моё мировоззрение, если бы я вырос здесь? Кем бы стал?

Как мы проводку на даче переделывали. Часть 1

Так получилось, что в ноябре прошлого года, мы взяли и купили домик в деревне. Внезапно.

И вот, этим летом заехали уже на новую дачу. Живём, никого не трогаем, и тут жена заметила, что, если включает чайник на веранде — воняет проводкой.

Проводка вроде новая… Полез разбираться — я же инженер, чё

Открыл блок с автоматами, там вот:

Три автомата:

  • Фаза розеток  — 20А
  • Фаза «свет» — 10А
  • Общий ноль — 10А (собраны обратные провода и от розеток и от света)

Читать далее Как мы проводку на даче переделывали. Часть 1