Skip to content
View itswill00's full-sized avatar
🌴
On vacation
🌴
On vacation

Block or report itswill00

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
itswill00/README.md

It's not about having, but about maintaining


What I work on

Three Xiaomi phones, three different kinds of problem. On the Redmi Note 14 4G (tanzanite, MT6789) Xiaomi never released the kernel source, so the pieces had to be recovered from firmware. On the Redmi Note 8 (ginkgo, SM6125) the source is public, and the work is finding what the existing ports silently get wrong. And on the same phone, running Apple's kernel instead of Linux, the work is a hardware map that has never been written down.

The two ginkgo projects are deliberately one above the other: same board, same device tree, and the second one exists because reading that tree carefully turned up facts the first one needed.

Ubuntu Touch 20.04 / Halium 12. Kernel from GKI 5.10 with AppArmor, 385 vendor modules recovered from the vendor_dlkm partition, recovery installer with AVB handling.

Ubuntu Touch 20.04 / Halium 10. Kernel 4.14 CAF NICOBAR built natively on aarch64. Found six upstream overlay defects, including a fingerprint HAL that never started.

Kernel bring-up by reverse engineering: GKI 5.10 configs, DTB, and the module layout the stock firmware actually uses.

Android root kernel and system manager. Kotlin, capability-based.

Minimalist media downloader module for rooted Android devices. Releases at HyperDL-Release.

Apple's XNU kernel on the same Redmi Note 8. A hardware probe and an honest map of why this board is harder than the ports that work: eMMC where every port expects UFS, and ARMv8.0 cores that cannot use the 16 KB pages iOS is built for.


Notes worth reading

From the tanzanite port, because the reasoning matters more than the result:

  • Module audit — audio, torch and camera were all broken by the same cause: 178 vendor modules that live on vendor_dlkm inside super.img, not in vendor_boot where the port was looking. Records two wrong assumptions and what disproved them.
  • Bootloader and AVB — why "you must flash fenrir/lkpatcher first" does not apply here: AVB in vbmeta is the mechanism that matters, and lkpatcher cannot patch this device (ARM32 patch set, AArch64 LK).
  • Changelog — written as cause and effect, not as a diff summary.
  • Port landscape — four Ubuntu Touch trees already exist for the Redmi Note 8 and all four are broken in different ways. Why this is a fifth rather than a fork, and what each one gets wrong.
  • ginkgo build notes — the ARM32 compat vDSO is assembled by the wrong toolchain because a Makefile passes a directory where clang expects a prefix. One line, four hours.
  • Hardware map — every address the Redmi Note 8 needs to boot a non-Linux kernel, with the device tree node each one came from. Written as data with the reasoning attached, so a wrong value can be traced back to an artifact instead of an opinion.
  • Observed vs guessed — the handoff separates what was read out of a device tree from what was inferred from position. Three of the six hardware facts in that port started as guesses, and saying so is what keeps the other three trustworthy.

Pinned Loading

  1. anomalyco/opencode anomalyco/opencode Public

    The open source coding agent.

    TypeScript 226k 30.5k

  2. DuskGram-app DuskGram-app Public

    DuskGram — Telegram client for Android

    Java

  3. HyperDL HyperDL Public

    Minimalist social media downloader module for rooted Android devices with Material monochrome WebUI.

    Python