xray v1: an X-ray of an Android phone before porting
xray collects over adb what you need to know about an Android phone before porting it: SoC, partitions, fstab and kernel. No root, Android 2.2 to 4.2.
Software architect · Teacher · Catechist
I design and build software, and in my spare time I bring old phones back to life: CyanogenMod ports, recoveries, kernels and bootloader reverse engineering.
Phones nobody updates anymore, running again: ROMs, recoveries and kernels built from source.
CyanogenMod 7 (Android 2.3.7) with its own 2.6.35 kernel, QWERTY keyboard, camera and a TWRP 3.1.1 recovery squeezed into a 5 MB partition.
CyanogenMod 7 running, with USB host (OTG) mode behind a software switch for devices without a wired ID pin.
CyanogenMod 7 port with the Phoenix kernel, FM radio included.
CyanogenMod 7 on MediaTek MT6572 (NAND/UBIFS): Bluetooth with A2DP, FM, calls, hardware video, USB tethering and Wi-Fi hotspot.
TWRP recovery and bootloader patch tested on real hardware, installed with nvflash and checked by reading the flash back.
CyanogenMod 10 and TWRP device trees for MediaTek MT6575 and MT6572 phones.
What I needed along the way to test, document and publish that work better.
Android app that checks which hardware works on a ROM: sensors, camera, Wi-Fi, Bluetooth, video, GPU and battery, with a step-by-step report that survives a reboot. Works from Android 2.2 and on QVGA screens.
20 BBCode posts about kernels, ROMs, recoveries and guides for LG and Alcatel phones.
Live BBCode previewer with a tag toolbar, safe rendering, i18n and tests, published on GitHub Pages.
Visual Studio Code extension with BBCode support.
Bootloaders, device recovery and hardware fixes, always tested on the real device.
Verified ARMv4T miniloader, eMMC read and write, and research into the Tegra 4i bootloader.
Recovery boot with an altered signature, hardware-tested, installed through nvflash and verified by readback.
Patch for the LK bootloader (MT6575) to boot unsigned recoveries without the security error.
Fixes dim replacement screens on Intel MacBooks by rescaling the macOS backlight to match Windows/Boot Camp brightness.
Mobile and web applications, plus plugins for the community.
Mobile marketplace built with Ionic and Capacitor.
Movie app in Kotlin using MVVM and Clean Architecture.
Community Capacitor plugin to launch your own Android Activities.
xray collects over adb what you need to know about an Android phone before porting it: SoC, partitions, fstab and kernel. No root, Android 2.2 to 4.2.
The P659H rejected TWRP with “boot certification verify”. I analyzed its aboot, added a Loki target, and obtained persistent recovery.
The LG L3 (MSM7225A) shipped with kernel 2.6.38. Moving it to 3.4 for Android 4.2.2 was a chain of silent reboots, nearly all caused by the modem.
Over eight years building software for companies, banks and startups, and teaching it; before and alongside the Android ports.
Mar 2021 – Dec 2025 — Software consultancy
May 2024 – Sep 2025 — Educational institute
Jan – Apr 2025 — Software consultancy
Aug 2020 – Mar 2021 — Software consultancy
Oct 2019 – 2020 — Retail
Feb 2018 – Sep 2019 — Software consultancy
Apr 2017 – Feb 2018 — Software consultancy
I work as a software architect, I teach and I serve as a catechist. I like to explain what I build: every port I publish states its real status, the tests done and what still does not work.