Run full iOS 16.5 firmware on Android Devices 🔥 Горячее 💬 Длинная дискуссия
Проект HackiOS запускает открытое ядро XNU (версия xnu-8796.121.2, ядро iOS 16.5) на аппаратном обеспечении Android-смартфона и поверх него — немодифицированное пользовательское пространство iOS 16.5: launchd, backboardd, SpringBoard и приложения. Это стало возможным благодаря собственному EFI-загрузчику, заменам закрытых драйверов Apple, порту UEFI и драйверу Wi-Fi Linux на слое совместимости. Работает в двух средах: на POCO X5 Pro 5G (Snapdragon 778G) без прошивки — UEFI стартует через fastboot boot, система живёт в оперативной памяти и исчезает после перезагрузки, — и в QEMU на любом компьютере с Linux.
Уже работают экран блокировки, разблокировка свайпом, домашний экран с иконками и обоями iOS, системные жесты, Control Center, приложения (Настройки, Часы, Календарь, Фото, Заметки, Safari), виджеты, тачскрин Goodix GT9916 с мультитач, восемь ядер CPU, GPU Adreno 642L через Mesa/freedreno и Wi-Fi (WCN6750, ath11k) со скоростью 55–90 Мбит/с. Из 456 системных шейдеров 293 уже работают на Adreno. Не работают пока сотовая связь, Bluetooth, зарядка под этим ядром, запись видео и вход в Apple ID из-за отсутствия Secure Enclave. Это исследовательский стенд, а не ROM: сессия длится заданное число секунд, затем ядро передаёт лог загрузчику. Файлы Apple в репозиториях отсутствуют — скрипт скачивает IPSW с CDN Apple на машину пользователя.
Комментарии (174)
Тред дополняет статью наблюдениями: камера работает, но зарядка не поддерживается. Большинство современных iOS-приложений не запустятся на ядре 16.5, однако это важный шаг для исследований. Проект финансируется токеном $HACKIOS на BNB Chain (комиссия 1% идет на развитие). Это исследовательская сессия, а не полноценный ROM: после ограниченного по времени сеанса ядро возвращается к загрузчику и передает журнал. В разработке используется ИИ Claude, который через ADB автоматически загружает версии ядра и проверяет результаты. Авторы предупреждают, что открытый порт может упростить создание клонов iPhone. Также обсуждаются сложности с доступом к App Store из-за отсутствия уникального идентификатора и причины остановки порта на iOS 16.5 (возможно, из-за изменений в iOS 17). В качестве альтернативы предложено запустить свободный Android-дистрибутив, например GrapheneOS, на оборудовании Apple.
My server is a phone now 🔥 Горячее 💬 Длинная дискуссия
Вместо платного VPS автор превратил ненужный смартфон CMF Phone 1 в сервер для личных сервисов: удалённого браузера Surf, трекера финансов, screen sharing и других веб-приложений. Устройство обладает 8 ядрами ARM, 8 ГБ ОЗУ, Wi-Fi 6, 5G и аккумулятором — всё это уже оплачено и работает без лишних расходов.
Первая попытка заменить Android на postmarketOS провалилась: пропали Wi-Fi, GPU и другие критичные драйверы. Восстановление заводской прошивки заняло часы и потребовало Windows в QEMU. В итоге автор оставил Android и использовал Termux как среду для запуска Linux-приложений через chroot. Termux:Boot автоматически стартует SSH и сервисы после перезагрузки, Tailscale обеспечивает постоянный доступ по адресу ssh cmf. Дашборд на Vue собирает метрики: загрузку CPU, память, температуру, заряд батареи и статус сервисов, отображая их локально или через Tailnet. Система воспроизводима через Git, тихая, энергоэффективная и работает даже при сбоях питания. Хотя это не для критичных данных и не замена серверу с GPU, для личных нужд — идеальное решение.
Комментарии (196)
Использование старых телефонов в качестве серверов может снизить затраты и уменьшить электронные отходы, но требует учёта ограничений: низкой мощности, деградации батареи и несовместимости ПО. Применение легковесных ОС, таких как postmarketOS, расширяет возможности устройств. Успех зависит от правильного подхода к управлению ресурсами и предотвращению сбоев.
Using Claude Code to modernize a 25-year-old kernel driver 🔥 Горячее 💬 Длинная дискуссия
- Увлечение — восстановление данных с кассет QIC-80 90-х гг.
- Драйвер
ftape(Linux 2.4) последний раз собирался ~2000 г.; с тех пор приходится держать CentOS 3.5. - Привод подключается к контроллеру гибкого диска: дёшево, но 500 Кбит/с и куча «магии» портов/IRQ.
- Под DOS/Windows есть проприетарные утилиты, но только
ftapeдаёт «сырой» дамп, независимо от формата ПО, которое писало кассету.
Цель: переписать драйвер под современное ядро без боли.
Инструмент — Claude Code (Claude 3.5 Sonnet) в режиме «актов» (акт = автоматический цикл «предложи-отладь-протестируй»).
Ход работы
- Запустил
claudeв каталоге исходниковftape-4.04(1999 г.). - Первый акт: «сделай модуль для ядра 6.10». Claude выдал:
- заменил
cli/stiнаspinlock_t; sleep_on→wait_event;register_blkdev→blk_mq;kmalloc→kmalloc_array;- добавил
MODULE_LICENSE/AUTHOR/DESCRIPTION.
Собралось с десятком предупреждений.
- заменил
- Акт 2: «убери варнинги». Убрал устаревшие
ioctl, обернулprintkвpr_*, добавилfallthrough;. - Акт 3: «проверь на x86_64». Исправил
long↔intв структурах, выровнялu8/u16через__packed. - Акт 4: «протестируй на железе». Создал QEMU-образ с контроллером FDC, подключил образ кассеты.
- первый
insmod— kernel oops; Claude добавилBUG_ON(!request_region)и проверку IRQ. - второй —
ftapeвидит привод, но «unknown format»; Claude вставил распознаваниеQIC-80поID_CRC. - третий — успешный дамп 120 Мб за 40 мин.
- первый
- Акт 5: «очисти и оформи». Удалил весь
#ifdef LINUX_2_0, добавилREADME.md,Kconfig,Makefileдляin-treeсборки.
Результат
- 2 500 строк C → 1 100; 45 файлов → 12; минус 4 архаичных под-драйвера.
- Собирается как
out-of-tree(6.6–6.12) и какin-tree(патч 30 Кб). - Скорость 470 Кбит/с — предел FDC, но стабильно.
- Поддержаны только QIC-80; QIC-40/3010/3020 выкинуты (никто не просил).
Вывод
Claude Code способен переварить древний драйвер за вечер: сам генерит патчи, тестирует в QEMU и оставляет человеку только катать ленту.
Комментарии (275)
- Claude Code и другие LLM-инструменты превращаются в «силовой множитель» для разработчиков: ускоряют работу в знакомых фреймворках и позволяют быстро осваивать новые.
- Главное — самому понимать, что делаешь: чёткие промты, ключевые слова предметной области и умение сверять результат критически снижают количество багов.
- Примеры успеха: порт драйвера ftape с Linux 2.4 на 6.8, апгрейд Pydantic V1→V2, inline-ASM под Apple, модернизация 15-летнего PHP-кода — всё за часы вместо недель.
- Самые ценные фичи: долгие процессы в терминале, автоматическая проверка своего кода, быстрое написание тестов и бенчмарков «на заказ».
- Безопасность: при работе с sudo-операциями или ядром итерации лучше вести вручную, чтобы LLM не сломала систему.