Приключения с LineageOS + Magisk

На своем телефоне я использую вместо официальной прошивки LineageOS в связке с Magisk root (эдакий волшебный инструмент получения рута, с которым сохраняет работоспособность Android pay). И тут можно радоваться еженедельным апдейтам каждый понедельник (для моего Oneplus 5T). Тут надо заметить, что у lineage апдейты не имеют обыкновения ломать систему. И все было хорошо, пока последнее майское обновление не “окирпичило” телефон. Как выяснилось, Lineage тут был не при делах – косяк был в Magisk (стоило его убрать и все заработало). В этой заметке я расскажу об эпичном фейле в Magisk, а так же приведу ссылку на исправленную версию Magisk’а, не превращающую телефон в тыкву кирпич.

(далее…)

MediaDeb: Debian для китафонов чипах MediaTek

В этой заметке я расскажу о том, как превратить старый убитый китафон на чипе MediaTek, пылящийся на полке, уже даже без обновлений от производителя в… сервер под управлением Debian Stretch! Оную операцию я проделал для UMI-X2 и iOcean X8, и прошивки для оных и можно скачать по ссылке у меня в блоге. Учитывая, что типичный китайский телефон уже давно имеет по четыре, а то и десять процессорных ядер и 2GB оперативной памяти, а то и больше, результат получается намного более производительным, чем тот же Raspbberry PI, при схожем окружении.

(далее…)

Flying Bear P902: Добавляем полку для инструмента

Чтобы расчистить бардак на столе около 3д-принтера, я сделал вот такой вот небольшой крепеж для шестигранников и отверток, которые шли в комплекте с ним. Изначально сделано для моего P902, но должно подойти для любой конструкции, собранной из алюминиевого профиля.

(далее…)

Тест интеграции с соц-сетями

Уже прошло прилично времени с тех пор, как я что-то писал в этом унылом инженерном бложике. Настолько, что можно было посчитать, что я забросил это дело. Напротив, я решил вдохнуть немного больше жизни в этот бложик, потому буду теперь постить всякие околоинженерные заметки намного чаще. И, так как по ходу выхода не, я добавил в этот блог интеграцию с соц. сетями. Для начала – твиттер и вконтакте. Собственно, это тестовый пост, чтобы проверить, что интеграция с соц. сетями работает как надо.

Не стоит ожидать, что я буду отвечать на каждый френд-реквест/личное сообщение/ретвит. Если действительно хочется связаться – электронная почта остается лучшим средством. Почему? Как минимум потому, что спустя пять 5 минут после регистрации аккаунта в том же вк полез спам: . А в случае с электронной почтой с ним мы хоть знаем, чем бороться.

(далее…)

CMake + atom + .clang_complete

С некоторый пор я переехал с emacs’а на atom, который выглядел как более современная замена. Что для меня было важным – у него очень хорошая работа с CMake и автодополнение для оного. Вскоре ко всему этому делу я прикрутил lint и autocomplete через clang. И то и другое мне понравилось, но хотело актуального .clang_autocomplete в корне проекта. Однако, если проект получает от системы сборки кучу дефайнов, то управлять этим файликом руками становится больно и неприятно. Выход – генерить его на лету. Вот мой костыль для CMake:

message(STATUS "Generarating ${CMAKE_SOURCE_DIR}/.clang_complete")
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
file(WRITE ${CMAKE_SOURCE_DIR}/.clang_complete "")
foreach(dir ${dirs})
  file(APPEND ${CMAKE_SOURCE_DIR}/.clang_complete "-I${dir}\n")
endforeach()
string(REPLACE "'" "" CMAKE_C_FLAGS_SPLIT ${CMAKE_C_FLAGS})
string(REPLACE " " ";" CMAKE_C_FLAGS_SPLIT ${CMAKE_C_FLAGS_SPLIT})
foreach(flag ${CMAKE_C_FLAGS_SPLIT})
  file(APPEND ${CMAKE_SOURCE_DIR}/.clang_complete "${flag}\n")
endforeach()

Очевидно, если мы используем C++ в проекте, то и обрабатывать схожим образом надо переменную CMAKE_CXX_FLAGS. У этого кода есть очевидное ограничение: Если мы передаем через -D дефайны с несколькими словами – нас ждет облом (напр. -DRELEASE_CODENAME=”Black Burned Cookies”)

rf24boot: A universal over-the-air bootloader for all those uCs

Apparently I’ve come up to a point, when I want to do firmware upgrades for my home automation ‘over-the-air’. Since I’m using nRF24L01 dongles, I decided to write a bootloader for that.
While my pet antares project is slowly progressing towards the 0.2-rc2 release (honestly, really slowly), I’ve added the nice and shiny RF24 library (A port of maniacbug’s arduino library to pure C with no arduino dependences) to interface with nrf24L01 2.4Ghz dongles. I also fixed a few nasty race conditions out there on the way, but those are totally a different story.
So, what’s inside:

snapshot15
(далее…)

Крэдл для F602

Некоторое время назад стал обладателем китаемобилы на MT6116, а именно F602.
Ну и решил исправить недоработку китайцев сварганив для него кредл. Огромное спасибо Диме за 3д печать.
Провод для этого берется родной, втыкается в прорезь, в кредл ставится телефон. После замазывается поксиполом/заливается термоклеем.


(далее…)

Леды!11

В общем работаю над автокрутилкой йотовской антенны. На прошлый выходных завел шаговое двигло на attiny2313 и uln2003a. Движок от хдд не прокатил – оказался 3хфазным бесколлекторным, который без лишнего геморроя не подключишь к простенькому контроллеру. Потому я использовал его вместо подшипника. Всю конструкцию оставил на даче на доработку, а попутно, уже дома сооружаю светодиодное оформление этого чуда инженерной мысли. Проблема в том, что пинов мало осталось свободных, а светодиодов навешать хочется много.
Но тут на помощь пришли регистры 74HCT273. Их мне отсыпали по 4ре рубля в честь распроджажи, в то время как сдвиговые были по десятке. Будучи человеком жадным, я соединил выход предыдущего со входом следующего, получил сдвиговый геристр. Вообще как пример в учебнике. Проверяем через LPT и обожемой! оно работает.
Ну все, теперь только закончить антенну….