Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Зазеркалье – это погружение в глубины мифов, магии и странствий. Вас ждут сражения на дорогах удивительных миров, соединенных порталами. Сочная графика и потрясающий сюжет, множество героев, общение с игроками. Без рекламы и любых назойливых ограничений.

Зазеркалье – фэнтези MMORPG

Мультиплеер, Ролевые, Приключения

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
79
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER

Вышел новый видос - экранизация недавней статьи о том, как я превратил электронный переводчик в ARM-ноутбук⁠⁠

1 год назад

Смотрите на ютубчике или читайте в текстовой версии на Пикабу!

[моё] Гаджеты Покупка Опрос Windows Моддинг Программирование Девайс Видео YouTube
2
24
radmp
radmp
S.T.A.L.K.E.R.

Anomaly по сети, уже здесь!⁠⁠

1 год назад

Ранее уже выкладывал здесь пост о своей модификации, теперь, хочу поделиться проделанной работой.

Давно пора было переосмыслить направление в котором мы двигались, вот теперь цель довольно чёткая и понятная. Anomaly Together

На скриншоте выше, отнюдь не S.T.A.L.K.E.R. 2, а модпак CUSTOM на Anomaly 1.5.2. Создан он на основе другого модпака EXPEDITION.

Так причём же здесь мы и наш проект?? А при том что мы смогли запустить данный модпак в режиме кооператива. Смогли мы запустить нетолько CUSTOM, но и ванильный Anomaly 1.5.2, а также другие сборки.

На скриншоте выше - модпак GAMMA, дискорд которого на данный момент насчитывает более 500 тысяч участников, однако только наш проект позволяет запустить его в кооперативном режиме.

Все скриншоты были сделаны нашими тестерами из приватного Альфа Тестирования. Работа над модификацией продолжается.

Если хотите увидеть геймплей, то можете просто вбить в поиске Anomaly Together и вам выдаст некоторые видео с реальным геймплеем от таких популярных ютуберов как Мануэль, Megatiesto и других менее популярных видеоблоггеров.

Немного фактов:

1. Мод сделан за 2,5 месяца
2. Мод базируется на Anomaly 1.5.2
3. Мод умеет взаимодействовать с DLTX и MO2 системами, что позволяет создавать свои сборки из аддонов на Moddb (2300+ аддонов)
4. Мод весит порядка 50 мегабайт
5. Мод поддерживает DX11AVX, DX9AVX, DX9
6. В будущем будет предоставляться поддержка по модпакам, а также патчи к ним
7. На данный момент уже 50+ платных подписчиков на Boosty. Они получают приоритетную поддержку, ранние новости и контент из збт.

Заглядывай к нам на огонёк, ведь все наши слоняры уже в нашем Discord. Вот наши основные ссылки:

Discord: https://discord.gg/anomaly-together
VK: https://vk.com/rad_multiplayer

Вы также можете стать нашим платным подписчиком на Boosty от 99₽/месяц и выше если не жалко и вы хотите ускорить выход проекта в полноценный релиз, а также получать эксклюзивные роли в нашем Discord, а также новости от меня лично в категории для донатеров.

Ссылка: https://boosty.to/rad_multiplayer

Ах да, мы выложили бесплатную демо-версию в нашем дискорд, с инструкциями на Русском и Английском, но помните версия нестабильная и старая - просто на побегать, без квестов, с рассинхронами и прочим.

Показать полностью 8
[моё] Anomaly Gamma Нужно ваше мнение Сталкер X-ray Моддинг Кооператив Игры Выживание Custom Моды Длиннопост
10
34
Rock.Wolf
Rock.Wolf
В основном делаю посты по серии игр Disciples
Библиотеки Невендаара
Серия FAQ Disciples II

Disciples II Info - небольшая программа, что упрощает изучение модов⁠⁠

1 год назад

Программист под ником Vilgeforc уже довольно давно создал программу, которую в народе называют просто D2Info. Программа по указанному пути к игре вытаскивает всю информацию по юнитам, предметам и заклинаниям и позволяет быстро находить нужное с использованием фильтров и строкой поиска. Так можно быстро узнать, как сильно изменились знакомые юниты и что нового добавлено в моде, даже если вместе с модом не было списка изменений. Кроме того посмотреть скрытые характеристики существ, что сама игра никак не отображает.

Скачать можно по ссылке. Программа активно дорабатывается автором и имеет кнопку проверки обновлений, так, что скачав единожды можно просто обновляться прямо из интерфейса программы.

Установка: распаковать архив в любое место.

Меню у программы интуитивно понятное и простое, при первом входе укажите путь к игре нажав на троеточие. Затем выберите нужный раздел (Юниты, предметы, заклинания, лорды или книга заклинаний) и отыщите в списке интересующую вас игровую сущность. Используйте фильтры или строку поиска, чтоб ускорить этот процесс.

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

default - стиль по умолчанию

default - стиль по умолчанию

К слову многи элементы интерфейса кликабельны, вы можете быстро перемещаться по древу развития существа туда-обратно просто кликая на портреты, а также увидеть кого конкретного призывает юнит или посмотреть подсказку, если что-то ещё осталось непонятным (в правом верхнем углу).

Тоже самое касается и предметов, как талисманы, сферы...

...посохи и свитки.

А так выглядит раздел заклинания.

В разделе Лорды можно посмотреть список доступных навыков для каждого типа лорда, каждой из фракций и приоритет выбора навыка для ИИ

Ну и книга заклинаний

Фильтры для поиска. Например, быстро получить список юнитов с иммунитетом к яду? Легко.

И ещё кое-что. Встроенный калькулятор в разделе Юниты. Вы можете наглядно увидеть какие характеристики будут у существа, если влить в него... скажем 10 000 опыта.

Надеюсь ничего не важного не забыл. Подробнее, как более продвинуто можно использовать эту программу расскажу в новом посте о моддинге игры.

Показать полностью 11
[моё] Disciples 2 Программа Моддинг Ретро-игры Инструкция Гайд Длиннопост
8
67
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER

Купил себе девкит⁠⁠

1 год назад

Похвастаюсь перед читателями на Пикабу: недавно купил себе девкит (отладочная плата, плата для разработки) Snapdragon 410 от Veriscite. На подобных девкитах, разработчики смартфонов и планшетов разрабатывают и отлаживают софт, пилят драйвера и разрабатывают аппаратную часть будущего устройства! Найти бы еще девкит на что-то 2009-2010 года, омап какой нить или типа того...

А также из интереса взял себе девборду на S3C6410. Они на юлито совсем недорого сейчас стоят, а в комплекте (если не утерян) есть диски с BSP, документацией, Platform Builder и т.п. Интересно будет поколупать!

Круто?
Всего голосов:
Показать полностью 3 1
[моё] Опрос Покупка Хвастовство Радость Своими руками Программирование Гаджеты Snapdragon Qualcomm Моддинг Длиннопост
10
95
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024⁠⁠

1 год назад

Друзья! А знаете ли вы, какой Android-смартфон был первым в мире и как он выглядел? А я теперь не просто знаю, но и могу физически пощупать настоящую легенду своих лет — HTC Dream, также известный как T-Mobile G1. Однако G1 был мне интересен не только как коллекционный девайс для гика, но и потенциально-диковинное устройство для разработки приложений: ведь в современном мире принято повышать минимальную версию Android для работы тех или иных программ, а я свои буду… понижать, чтобы они смогли заработать даже на самой первой версии Android! В сегодняшней статье мы с вами: посмотрим на Dream и постараемся понять, почему HTC выбрала именно Android, неудачно перепакуем аккумулятор, бэкпортируем мои клиенты ВК, YouTube и Telegram и посмотрим, правда ли старичок «бесполезен», как говорят в ретро-обзорах или что-то ещё да может! Интересно? Тогда добро пожаловать под кат!

❯ Введение


Как я уже говорил в вводной части статьи, HTC Dream стал первым массовым Android-смартфоном в мире. Конечно, до этого момента в Google были гораздо более ранние прототипы, которые использовались при разработке устройства и что интересно — они тоже были разработаны HTC. Однако тот прототип был совершенно не похож даже на G1: это был QWERTY-моноблок с дисплеем 320x240, где всё управление происходило кнопками, а в качестве основы устройства скорее всего был выбран HTC Cavalier:


И вот, 22 октября 2008 года в свет выходит HTC Dream у американского оператора T-Mobile, который гики сразу смели с виртуальных и физических магазинных полок. Стоит ли говорить о том, что смартфон имел огромный спрос не только на локальном рынке в США, но и за рубежом? Серым импортом даже в СНГ ввозилось довольно немало HTC Dream: правда сейчас их живых осталось не так уж и много :( Кстати, забавно но факт: первые серийные G1 не имели такой открытости и возможности модификации системы, которой гордятся владельцы Android-смартфонов в спорах с владельцами iPhone: даже adb был доступен только на специальной версии G1 — Android Dev Phone 1!

Но почему HTC выбрала именно Android? Чтобы ответить на этот вопрос, нужно вернуться в 2008 год, когда на рынке главенствовала Nokia со своим свежим флагманом 5800 XpressMusic. В те годы, выбор операционных систем для смартфонов был крайне невелик: по сути, производителям были доступны только две системы.

  • Первой была Windows Mobile, которая была хороша во всем: у неё была неплохая архитектура под капотом, настоящая многозадачность и работала она сносно даже на очень слабом железе. Но поскольку это Microsoft, куда же без косяков: система была нестабильной и могла повиснуть в самый неудачный момент (думаю, многие читатели помнят такие сокращения как ХР и ББ), её интерфейс не был анимированным (и не «модным») от слова совсем, а сама система была адаптирована лишь под стилус. Но тем не менее, мобильная винда продержалась на рынке смартфонов до 2010 года, как раз к моменту выхода Windows Phone 7… но это уже совсем другая история.

  • Второй системой была, конечно же, Symbian, которая на первый взгляд была хорошей: довольно удобный и привычный для многих интерфейс, очень хорошая оптимизация для слабых устройств и большая база самых разных приложений. Но её недостатки были гораздо более серьёзные, чем у мобильной винды: система лицензировалась не абы кому, а только участникам Symbian Foundation и её архитектура под капотом была просто отвратительной. Если кто-то из вас когда-то занимался разработкой нативных приложений под Symbian — вы наверняка вспомните эту боль.

И вот, в 2008 году на сцену выходит новичок на мобильном рынке — поисковой гигант Google со своей мобильной операционной системой Android, которая предлагала обширный функционал, нормальную среду для разработчиков и полноценный магазин приложений и делала это всё почти бесплатно: исходный код системы был опубликован под свободной лицензией и любой производитель мог использовать Android на своём устройстве полностью бесплатно, доплачивая лишь за необходимость установки Google-сервисов.

Учитывая, что внутренние прототипы Google разрабатывала тоже HTC, немудрено почему именно Тайваньская компания выпустила первый Android-смартфон в мире. Увидев успех HTC Dream, крупные гиганты также потянулись на рынок Android-смартфонов: Samsung представила I7500 Galaxy, давший старт одноименной линейке, Motorola представила CLIQ, а затем и легендарный Milestone, а LG — весьма интересную модель под названием GW620. Уже в 2009 году, HTC представила Magic, который Google раздавала на конференции Google I/O в Сан-Франциско всем участникам конференции и один из таких тоже оказался в моей коллекции!

Свой HTC Dream я получил совсем недавно из Китая. Я давно хотел обзавестись «дримкой» и недавно мне написал читатель Роман, предложив помощь в поиске интересующих меня девайсов на китайских аналогах авито. При этом Роман брал на себя все заморочки с организацией доставки из Китая в Москву, а из Москвы уже в мой город — Ейск, за что ему огромное спасибо. HTC Dream обошёлся мне в 2.200 рублей, а Moto Milestone — около 500 и оба устройства полностью рабочие!

Перейти к видео

Но перед тем как мы сможем перейти к фактическому обзору, нашу дримку нужно обслужить: у неё вспух аккумулятор, который уже никуда не годится, поэтому остаётся лишь его перепаковать. Перепаковка аккумулятора — это процесс замены литиевой банки на другую с сохранением оригинального контроллера и при возможности корпуса АКБ. И в моём случае произошёл определенный фейл…

❯ Перепаковываем аккумулятор


Сначала аккумулятор необходимо разобрать. Для многих этот процесс может показаться опасным, но я уверяю авс — если не тыкать в аккумулятор отвертками и не замыкать ничего в цепи BMS-контроллера и самого аккумулятора, всё будет нормально. В моём случае, разбирается он просто — отклеиваем бумажки, формирующие корпус и аккуратно вытаскиваем банку с контроллером из пластиковой основы.

Затем выпаиваем плату защиты, известную также как BMS (Battery Management System) и идём искать подходящую банку. Можно установить как Б/У с другого телефона, так и новую, подходящую по размерам. Новой банки таких габаритов у меня не было, поэтому я решил воткнуть туда от АКБ для телефона LG.

Но произошёл определенный нюанс: параллельно со статьей я готовил и видео, подробно снимая весь процесс перепаковки. В момент пайки отвлекся на видоискатель, перевернул бмску ввеврх-ногами и… переполюсовал аккум до входа в BMS. Результат: со смартфоном всё хорошо (на входе VBat в телефонах всегда стоит защита от переполюсовки и КЗ. Кроме того, КП способен выдержать до ~5.5В на VBat, но не более), а в контроллере BMS-дырка :(

Сначала я думал вырезать эту часть статьи, но потом решил, что авторы — тоже люди и у них тоже бывают определенные фейлы :) Но гештальт не закрыт и я обязательно выпущу ещё более подробный гайд о перепаковке аккумуляторов. В дримку можно установить BL-4C от Нокии, однако заряжаться он будет только до загрузки ядра, поэтому зарядки у нас по факту пока что нет. Ну ничего, думаю ещё найдется аккумулятор!

❯ Бэкпортируем приложения


Друзья! После статей и видео о разработке самопальных приложений, мне часто пишут в личку с вопросами можно ли портировать приложения современных сервисов на смартфоны прошлых лет. И здесь ответ неутешителен: нет, без исходного кода, в том числе и нативных зависимостей ничего портировтаь так просто не выйдет. Мои приложения изначально писались так, чтобы не зависеть вообще ни от чего кроме голого API Android (ни AppCompat, ни каких либо иных зависимостей) и при этом по возможности не используются даже фичи Android из 2.x. Именно поэтому мне свои приложения портировать гораздо проще.

Современная студия уже не умеет собирать приложения для 2.1 и ниже: примерно в 2.2 немного поменялся бинарный формат XML, из-за чего десериализатор в более старых версиях Android валится с ошибкой. Однако приложения, собранные в Android Studio образца 2017 прекрасно работают и на Motorola Milestone!

Поэтому всё, что нам остаётся — это лишь импортировать код приложений в более старую студию (в моём случае 2.3.2), поставить minSDK на 1 (Android 1.0) и собрать приложение… А ведь даже отладчик работает! Конечно есть определенные нюансы: например, в Android 1.0 нет атрибута onClick, дабы быстро повесить обработчик кнопки в Design-time и другие мелкие «приколы» той версии Android.

Приложения бэкпортированы, а значит можно попробовать, каков же экспиренс от использования первого Android-смартфона в 2024 году!

❯ Обзор


Конструктивно смартфон очень интересный. Несмотря на то, что корпус отюндь не выполнен из премиальных материалов, смартфон лежит в руке классно, но самое приятное ощущение — это открыть клавиатуру путём сдвига QWERTY-слайдера…

Механизм работает идеально даже спустя 16 лет после выхода устройства! Нижняя панель кнопок отличается наличием трекболла: специального колёсика, выполняющего роль DPad'а (стрелок). Трекболл долгое время был фишкой HTC, да и в целом действительно довольно удобным решением в определенных ситуациях, учитывая что первые ёмкостные тачскрины не были надёжными от слова совсем.

Изначально производительность смартфона меня не устроила и я решил скинуть его до заводских настроек. Но я не учёл один факт: в то время, Google почему-то пыталась косить под Apple и позволяла активировать смартфон только при наличии активного тарифного плана с пакетом интернета и симкой T-Mobile! Поэтому пришлось быстренько откатываться до прошивки RC29 (Android 1.0) и обходить активацию с помощью adb. Инженеры HTC оставили рутовую (!) консоль, которая работает из всей системы, когда мы просто пишем что-то на аппаратной клавиатуре! Попробуйте написать Enter -> reboot -> Enter на своей дримке!

После включения, нас сразу встречает оригинальный гугловский лаунчер, который может быть знаком читателям, которые пользовались первыми Android-смартфонами. Менюшка здесь открывается путём свайпа нижней шторки вверх… но поскольку в те годы, всё 2D в Android рисовалось софтварно, то плавность была далека от айфона. Но всё равно вполне шустренько.

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

Начинаем с браузера. В качестве браузерного движка, Google решили выбрать в своё время WebKit, который исопльзовался в дроиде вплоть до 5.0, когда WebView и его фактическую реализацию разделили, попутно заменив WebKit на Chromium. Сейчас эта версия, увы, уже почти ничего не может: ни Хабр почитать, ни Пикабу… конечно сторонние клиенты могли бы решить эту проблему, но оба сайта не хотят предоставлять никакого публичного апи…
Браузер до 2.1 даже верхней шторки не имел и переходить по URL приходилось нажимая кнопку контекстного меню и только затем Go:

До сих пор на устройстве работает мой любимый клиент почты — тот, который встроенный. Если ставить галки «SSL If Required», что позволяет игнорировать ошибки SSL, то он работает замечательно. Клавиатура у Dream замечательно подходит для переписок — отдельный ряд с цифрами и общее расположение кнопок этому очень и очень способствуют!

Работают даже карты, позволяя сделать из смартфона с GPS в эдакий навигатор без навигации. Но карты работают очень шустро, даже поиск есть, а если вдруг Google Maps со временем отвалится, то я и вьювер OSM запилю :)

Давайте же перейдем нашим приложениям! Начинаем с моего клиента YouTube, который здесь работает, но из-за значительно более «белой» светлой темы в 1.x, надписи не видно от слова совсем.

Клиент ВК здесь работает без каких либо проблем, но на «не свежей» системе заметно подлагивает. В целом, производительность всё равно далека даже от iPhone 3G в те же годы:

А как насчёт Telegram? Смогу ли я написать пост в свой Telegram-канал с него, учитывая такую крутую и классную QWERTY-клавиатуру?

❯ Заключение


Вот такой материал про первый Android-смартфон в мире у нас получился. Как видим, не совсем уж он и бесполезен и при определенном желании всё ещё может послужить хорошую службу своему хозяину. Берегите свои дримки :)

Также у меня естьTelegram-канал, куда я выкладываю мысли касательно ремонта и программирования под гаджеты прошлых лет.
А когда у вас появился первый Android-смартфон? Пишите в комментариях!

На какой версии системы был ваш первый Android-смартфон?
Всего голосов:


Кстати, если у кого-то из читателей есть ненужные устройства (в том числе с косяками) или дешевые китайские подделки на айфоны/айпады/макбуки и другие брендовые девайсы будучи нерабочими, тормозящими, или окирпиченными и вам не хотелось бы выкидывать их на свалку, а наоборот, отдать их в хорошие руки и увидеть про них статью — пишите мне в Telegram или в комментах! Готов в том числе и купить их. Особенно ищу донора дисплея на китайскую реплику iPhone 11: мой ударник, контроллер дисплея калится и изображения нет :(

Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропускать новые статьи каждую неделю!

Показать полностью 24 1 1
[моё] Опрос Покупка Android Смартфон Гаджеты Китай Htc Разработка Программирование Java Ретроспектива Диковинки Ништяки Моддинг Видео Без звука Длиннопост
17
6
SkyLett
SkyLett

Создание мода для актуальной сегодня 7 days to die⁠⁠

1 год назад

Доброго дня местные гении) Сложилась такая ситуация, что играем мы с друзьями на сервере 7DTD и возникла необходимость внести изменения в некоторые файлы игры. А поскольку эта часть (интеграция с твич) людям-мододелам не особо интересна, то и аналогов я найти не смог, что бы взять откуда-то идею.

В общем, я хочу внести изменения в файлы twitch.xml и twitch_events.xml однако не могу разобраться с синтаксисом XPath Explained - то что используется в игре. Смог разобраться в локализации и добавлении НОВЫХ вещей модом, но редактирование текущего кода у меня не получается.

Приведу пример:

Это действие создания зомби по команде из чата твича

Это действие создания зомби по команде из чата твича

Я могу создать файл в своем моде с названием twitch.xml и добавить в него такой же блок - используя созданные заново секции action=name + command + command_key + event_name + default_cost для этого мне потребуется добавить command и command_key в файл локализации + event_name в файл gameevents.xml - что как бы добавляет очень много лишней ручной работы, а что-бы её избежать я хочу использовать xpath для изменения данных в уже существующих блоках.

Это нужно делать именно модом - т.к. при каждом обновлении игры или перекачке - все изменения в файлах естественно затираются, а мод работает всегда. Я уже больше года вносил изменения в файлы игры, но ужасно устал каждый раз переделывать))
В чём значится суть, мне нужно изменить данные в нескольких блоках: 1) начало файла с конфигурацией и пресетом действий

тут я хочу изменить переменные party_kill_reward_max и всё что имеет цифры в значениях + создать новый actions_preset

тут я хочу изменить переменные party_kill_reward_max и всё что имеет цифры в значениях + создать новый actions_preset

2) блок со спавном зомби, тут опять много рутины но это уже не страшно, я хочу использовать существующий gameevents который указывается в разделе event_name что бы не трогать лишние файлы, но в этом блоке мне нужно сменить command + command_key + default_cost + cooldown + вписать в команду созданный выше пресет

этот блок аналогичен и другим командам бады\дебафы\погода\мир и экстра

этот блок аналогичен и другим командам бады\дебафы\погода\мир и экстра

3) в другом файле twitch_events нужно поправить блок с пресетами и взаимодействия с баллами канала

пресеты

пресеты

секция создания наград за баллы канала

секция создания наград за баллы канала

Сейчас, все нужные мне изменения внесены в файлы игры и забекаплены на тыщу раз, потому как я устаю вносить их после каждой обновы и если ничего нового в файлах нет а это не одна тысяча строк, то я просто заменяю файлы на старые. Но хочется сделать всё правильно, а опыта именно с логикой у меня нет(
Может кто сталкивался с этим или понимает как это должно работать и подскажет почему я тупой)
сурсы которые читал и пытался делать по ним команды:
1) Базовый моддинг (фандом)

2) XPath Explained (фандом) тут рассказано как применять атрибуты и проч - но я не нашел для себя рабочего варианта из предложенных

Показать полностью 4
[моё] Игры Моддинг 7 Days to Die Помощь Unity Разработка Длиннопост
1
139
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому⁠⁠

1 год назад

Обычно Android-устройства принято считать "бесполезными" через 5-10 лет после выхода. Особенно, это касается бюджетных моделей, которые "не тянут" современные сервисы или те девайсы, которые по каким-то причинам физически пострадали в процессе своей жизни. Но пока одни выкидывают смартфоны и планшеты, считая их электронным хламом и засоряя мир, другие стараются найти применение всему подряд и оказывается, что Android-устройства ещё вполне себе могут оказаться полезными. Однако порой необходимо реализовать автоматическое включение устройства при подключения к зарядке и вот здесь многие впадают в ступор - ведь замкнуть кнопку включения зачастую недостаточно! В сегодняшнем материале я расскажу свои кейсы запитывания устройств от блоков питания, а также реализацию автовключения на разных чипсетах. Интересно? Тогда добро пожаловать под кат!

❯ Как и зачем?

Вероятно, читатель спросит мол "зачем 10-летние Android устройства могут быть нужны?". И если немного призадуматься, то можно прийти к выводу, что действительно гаджеты прошлых лет могут быть достаточно полезными во многих сферах, причём не только планшеты, но и Android-смартфоны. И помимо реализации чего-то "стандартного" на манер красивых Android-часов с будильником или, например, мультимедиа станции а-ля iPod, есть ещё множество интереснейших кейсов, в которых можно использовать такие устройства. Я лично собрал для себя несколько:

  • HMI-панель: это умные программируемые дисплейные модули, которые могут выводить ту или иную информацию с микроконтроллеров или любых других устройств на экран. Благодаря 10-дюймовому планшету можно сделать очень удобное переключение режимов работы каких-то устройств, либо сделать показ информации с различных датчиков в помещении в реальном времени. Никто не мешает и в машину такой планшет поставить для сбора информации о двигателе.

    У Android-устройств перед классическими HMI-дисплеями есть огромное преимущество: наличие 3D-ускорителя и возможность выводить красивые визуалиации и графики, а также анимацию. В будущем проекте со своей машиной - "ВАЗ 2110", я покажу как использовать планшет в таких целях на практике.

  • Сбор данных: у микроконтроллеров слишком маленький объем встроенной Flash-памяти, чтобы хранить какие-то большие датасеты и строить из них статистику. Конечно можно подключить MicroSD... но ведь ко всем сразу не будешь по отдельной флэшке подключать, да и MicroSD отнюдь невечные при постоянной перезаписи данных - и здесь приходит на помощь такой планшет. eMMC обычно значительно более выносливая через MicroSD, с неё можно достать данные (при отсутствии шифрования), а мощный процессор планшета вполне может ещё и обрабатывать приходимые данные и куда-то отправлять. Вполне полезно!

  • Использование как одноплатника: я писал об этом недавно статью. Во многих бюджетных планшетах разведен UART на плате, к которому есть доступ из пользовательского окружения и даже Java-приложений! Таким образом, можно общаться с микроконтроллерами по проводному интерфейсу, или напрямую дергать ножками микроконтроллера реализовав прошивку-прослойку для МК.

  • Нестандартные применения: ну, тут я просто хотел похвастаться своим проектом с превращением планшета в игровую консоль с помощью внешнего микроконтроллера :)

Так что, как мы с вами видим, устройства прошлых лет отнюдь не бесполезны и при определенной смекалке мы можем им дать вторую жизнь и приспособить для работы на каком-нибудь объекте. Понятное дело что что-то серьёзное на них никто вешать не будет, но например панель заказа нямки в чебуречной или что-то на манер ГУ в машине - почему бы и нет?

Однако порой возникает задача реализовать авто-старт устройства при подключении смартфона к зарядке или вообще реализация автономной схемы питания. Автономная схема питания реализуется относительно легко: порой можно кинуть 5В от блока питания на VBat (плюсовой и минусовой контакт АКБ) напрямую. КП у MediaTek, имеют пороговое напряжение на аккумуляторе до 5.5-5.6В и не выгорают. Но это рискованно, если БП плохой и произойдет скачок - есть шанс того, что окажется пробитой обвязка/КП/ключи (вход со стороны USB обычно защищен от такого). Лучше всего использовать DC-DC преоразователь на ~4.2В с током от 1.5-2А.

А вот с авто-стартом вопрос интереснее. Всё зависит от реализации этой самой кнопки включения и от чипсета: например, на смартфонах Sony с чипами Qualcomm иногда достаточно лишь сдуть кнопку включения и замкнуть её контакты перемычкой: всё будет работать без каких-либо проблем. Но на некоторых смартфонах, зажатая кнопка включения будет уводить устройство в циклический ребут каждые 10 секунд, что может быть неприемлемо.

Несколько месяцев назад, читатель под ником @A1f подогнал мне китайский iPhone 7 Plus на Android - всё как я и люблю :) Девайс был рабочий, однако после того, как читатель отдал его в сервис, у него по каким-то причинам потерялось пару винтов, оказалась сломана кнопка включения на шлейфе, а смартфон не заряжался...

Ну, с зарядкой вопрос я решил быстро: китайские айфоны иногда используют свои "Lighting'и", несовместимые с оригиналом и которые не могут заряжатьоригинальный айфон. Благо в комплекте был пожухлый оригинальный кабель, который я разобрал и припаял всё обратно. Теперь и USB, и зарядка работают нормально!

С кнопкой вопрос был интереснее: хотя найти такую на шлейфе и кинуть с неё перемычки - дело 5 минут, я лёгких путей не искал и решил сделать автостарт при подключении к зарядке - как и на оригинальном айфоне :)

И, как вы уже поняли, просто так поставить перемычку на контакте Power и массу не получится - смартфон будет постоянно уходить в ребут. Поэтому я сдампил загрузчик с помощью SP Flash Tool и начал ковырять его в IDA Pro, благо устройство не требует разблокировки этого самого загручзика. Способ рабочий для многих устройств на MediaTek, в том числе и некоторых 67xx (возможно придется разблокировать загрузчик), а на устройствах с другими чипсетами алгоритм может быть +- похожим, но если нет возможности напрямую вмешаться в загрузчик, можно сделать авто-загрузку патчем boot.img.

❯ Реверсим и патчим

Для реализации автозагрузки, необходимо пропатчить загрузчик. В устройствах на чипсетах MediaTek их два - первый Preloader, который занимается первичной инициализацией периферии и ОЗУ, а второй - lk, который инициализирует дисплей, грузит ядро Linux и передаёт ему управление. В сети уже давно лежат слитый исходный код и Preloader, и lk, так что с их изучением проблем не возникнет, идея общая у всех устройств.

Итак, что-же происходит при включении смартфона? lk определяет так называемый режим загрузки, в зависимости от которого меняется раздел, с которого грузится ядро (boot или recovery), а также параметры передаются ядру (atags). В процессе работы lk и перед загрузкой ядра, перед тем как показать анимацию зарядки, загрузчик проверяет нажата ли кнопка включения - и если да, то быстренько перезагружает устройство в обычный режим.

Да, всё так легко! Таким образом, нам остаётся лишь пропатчить условие с проверкой кнопки включения, дабы смартфон считал что кнопка нажата тогда, когда она по факту не нажата. В IDA Pro, lk загружается с смещением памяти в 0x0, а найти нужную инструкцию нам поможет зацепка в виде отладочной строки. IDA Pro сразу строит все xref'ы и обращения к строкам, так что найти нужные данные не составит труда. Ищем "[%s] PowerKey Pressed in Kernel Charging Mode Before Jumping to Kernel, Reboot Os" и смотрим все обращения к адресу памяти, с которого начинается строка.

Чуть выше метода вызова printf, можно найти наше условие, которое начинается с инструкции CMP R0, #0. Сразу после него идёт инструкция BNE, которая бранчит код и продолжает загрузку системы в режиме "зарядки". Нам остаётся лишь заменить её на NOP в hex-редакторе в той-же IDA Pro и система сразу после попытки включится в режиме зарядки уйдет в ребут и перезагрузится в обычном режиме, будто мы просто включили смартфон с кнопки!

Прошиваем наш новый lk:

И видим, что всё работает! :)

❯ Второй способ

Если возможности пропатчить загрузчик нет, в дело вступает второй способ, заключающийся в патче boot.img - раздела с ядром устройства и ramdisk'ом, в котором содержаться скрипты для инициализации устройства (*.rc). Всё дело в том, что даже при зарядке смартфон загружает ядро Linux, первоначальный рамдиск и в зависимости от режима загрузки запускает либо app_process (главныйй процесс в Android), стартуя загрузку системы, либо специальную программу, которая часто называется charger и находится в /system/bin/ (иногда в самом boot.img).

На смартфонах с разными чипсетами реализация этого способа может сильно отличаться, однако приведу пример с смартфонами Sony Erisson из 2011 года (у меня есть Xperia Play с сломанной кнопкой включения). Там устройство начинает выполнение скрипта init.rc, тот в свою очередь запускает init.semc.rc и на этапе инициализации запускает программу chargemon, которая выводит анимацию зарядки, отключает смартфон, если кабель вытащили и слушает нажатие кнопки включения, продолжая процесс загрузки, если пользвоатель зажал кнопку включения. Соответственно, весь фикс - закомментировать эту строку :)

#exec /system/bin/chargemon

В случае MTK, можно попробовать ещё пропатчить init.rc, дабы он продолжал загрузку системы даже в случае подключения кабеля в режиме зарядки. Способов много, главное проявить смекалку и не бояться разбираться в чём-то непонтяном :)

❯ Заключение

Как видите, ничего сложного в реализации автоматического старта устройства нет. Где-то можно обойтись перемычкой на кнопку включения, где-то патчем boot.img, а где-то и патчем загрузчика. Но тем не менее, это вполне возможно на практике и позволяет делать такие приколюхи, как я со своим китайским айфоном :)

Надеюсь, материал вам был интересен и полезен! Пишите, нужно ли вам было реализовать что-то подобное и как это делали в комментариях!

Друзья, если у вас есть подобные китайчики и вы не разделяете желания пытаться вдохнуть в них жизнь, но выбрасывать их жалко — можете задонатить их мне :) Как сами видите — девайсы попадают в хорошие руки. Из недавнего — я взял нерабочую, утопленную китайскую копию 14 Pro Max из под СЦ в качестве основного смартфона. Также у меня есть канал в Telegram, куда я выкладываю бэкстейджи статей, различные заметки о ремонте, моддинге, программировании и реверс-инжиниринге и свои мысли, а также ссылки на свои новые статьи и видео. Кому интересно — залетайте!

Интересный материал?
Всего голосов:
Если вы постоянный читатель, смотрите ли вы мой YouTube-канал?
Всего голосов:

Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропускать новые статьи каждую неделю!

Показать полностью 13 2
[моё] Опрос Android Смартфон Гаджеты Покупка Своими руками Моддинг Unix Linux Микроконтроллеры Длиннопост
16
4
FunFunky

Обновил грызунов⁠⁠

1 год назад

В распоряжении есть две мыши, домашняя G Pro Wireless и рабочая SS Riwal 3 Wireless

И так совпало, что на G Pro пора менять энкодер, а на Riwal левый микрик из-за замены энкодера)) Пока менял передавил микрик и потерялся щелчек. Пробовал разобрать и натянуть пружину по новой, но в этот раз не помогло и решил обновить целиком.

Поехал к товарищу с авито, выбрал после тестов пару Kailh GM 9.0 и Huano Crystal silent и Kailh RED энкодер

1/3

Kailh GM 9.0

Huano Crystal silent

Huano Crystal silent

1/2

До / после G Pro

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

1/2

До / после SS Riwal 3

Kailh GM 9.0 брал как просто звонкие, чуть более мягкие. В целом каких то супер необычных ощущений кроме приятного звонкого звука от них не получил, но так и планировалось.

Кстати за пол года на SS поменял три энкодера TTC

Очень странные они какие то, по ощущениям как будто внутри наждачкой трет, как будто без смазки. Kailh с ходу себя лучше показали, нет этой шершавости в вращении.

Показать полностью 11
[моё] Моддинг Поломка Мышь Микрик Макросъемка Длиннопост
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии