Skip to content
View 7Ji's full-sized avatar

Block or report 7Ji

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.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

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

Report abuse
7Ji/README.md

Welcome to Guoxin "7Ji" Pu's profile

Born a tinkerer, majored in business & trading, led campus media union, now R&D engineer on OS, kernel and compiler.

My GitHub Stats

My current public blog site is at https://7ji.github.io/ .

My GitHub Language Stats

I created the following projects and maintain them actively:

  • ampart, a partition tool for Amlogic's proprietary eMMC partition format mainly found on their Android firmware, in C, based on my reverse-engineering, a patchset for mainline kernel is also available to natively support such partitions.
  • ampack, a tool to unpack, convert and (re)pack Amlogic burning images, in Rust, also based on my reverse-engineering, aiming to replace AML's proprietary aml_image_v2_packer binray.
  • git-mirrorer / gmr, a tool to mirror git repos, and archive and checkout them with submodules included implicitly, in C, using libgit2 and libyaml.
  • YAopenvfD, a helper daemon to improve the functionality of the linux_openvfd kernel module, for fragment LCD displays found on set-top boxes, in C.
  • eemount, a system utility to efficiently and elegantly set up the external ROMs mounting for EmuELEC (see below), in C, using libsystemd.
  • pkgbuild-rs, a naive PKGBUILD parsing library, that runs on any distro or platform (even non Arch), in Rust.
  • alnopm, an Arch Linux Pacman repository database parsing library, that runs on any distro or platform (even non Arch), in Rust.
  • arb, a builder to build an Arch Linux repo in a disk-space-and-network-efficient way, in Rust.
  • sd-networkd-wg-ddns, a systemd-networkd wireguard netdev endpoints DynDNS updater, in C.
  • wireguard-deployer, a single-config WireGuard keys and systemd-networkd + OpenWrt configs generator (also as tar with correct permissions), in Rust.
  • archrepo, an Arch Linux / Arch Linux ARM repo, focusing on media center use cases, hosting pre-built kernel and video de/encoding packages, notably for Rockchip RK3588 (Orange Pi 5/5B/5Plus, Orange Pi 3B, Radxa Rock 5B) and Amlogic platforms, updated hourly.
  • amlogic-s9xxx-archlinuxarm, orangepi5-archlinuxarm and orangepi5-rkloader providing pre-built ALARM / bootloader images with my ported/maintained kernels pre-installed.
  • nvrust, a daemon to turn any Linux box into a Network Video Recorder, in Rust, using libffmpeg.
  • videoArchiver.py, a video archiving tool, in Python, using ffmpeg.
  • usb2host in C, router_reporter in Go, mirai-ip-notifier in Go, arch_pkgbuilds_dumper in Python, CargoStranding in C++, CargoStrandingWeb in Javascript, and other nice tools.

I created the following organisations and actively lead & maintain them:

  • 7Ji-PKGBUILDs, collections of PKGBUILDs (recipes to build Arch Linux package from) submitted/maintained/co-maintained by myself, focusing on kernel, video de/encoding, and more. Consider it my own AUR.
  • HybridELEC, a downstream semi-distro to achieve side-by-side dual boot of CoreELEC (see below) and EmuELEC (see below), some special images are also released for chosen devices to achieve triple boot, with Android as the main OS. In various languages (including an Android App to switch OS) and based on kernel/booting reverse-engineering.

I maintaind the following projects previously and enjoyed the experience:

  • EmuELEC (during 2022-2023), a distro focusing on smooth out-of-box retro gaming experience on entry-level ARM devices, for Amlogic and Rockchip devices. As the kernel expert in team to introduce support to new devices.

I contributed to various projects and here's not enough space to document them.

Some of my upstreamable / non-upstreamable patches to mainline kernel and u-boot are hosted in the following repos/branches:

  • 7Ji/linux, the default amlogic tree contains my patchsets to enable Amlogic partitions support, port several device trees, and add/improve the JL21xx network PHY driver and openvfd driver.
  • 7Ji/u-boot, the default random-boxes tree contains my patchsets to port/add several device trees, and add support for environment-based partitions.
  • 7Ji/linux-orangepi, the default orange-pi-5.10-rk3588-gcc-12 branch contains my fixes to drivers, filesystem, memory management and more to make the BSP kernel buildable on post-gcc-12 toolchains.

Pinned Loading

  1. ampart Public

    A partition tool for Amlogic's proprietary emmc partition format

    C 79 25

  2. archrepo Public

    A pacman repo focusing on Arch as media center, for ArchLinux on x86_64 and ArchLinux ARM on aarch64, updated hourly

    Shell 28 5

  3. YAopenvfD Public

    Yet Another openvfd Daemon

    C 7 3

  4. git-mirrorer Public

    To mirror git repos, and archive and checkout them with submodules included implicitly.

    C 6

  5. ampack Public

    A tool to unpack / (re)pack AMLogic burning images

    Rust 21 4

  6. HybridELEC/HybridELEC Public

    Side-by-side dual-bootable CoreELEC + EmuELEC, and on-eMMC triple boot with Android

    164 24

793 contributions in the last year

Contribution Graph
Day of Week February March April May June July August September October November December January February
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Less
No contributions.
Low contributions.
Medium-low contributions.
Medium-high contributions.
High contributions.
More

Activity overview

Contributed to 7Ji/aimager, 7Ji/archrepo, 7Ji-PKGBUILDs/wechat-universal-bwrap and 77 other repositories
Loading A graph representing 7Ji's contributions from February 18, 2024 to February 20, 2025. The contributions are 97% commits, 2% issues, 1% pull requests, 0% code review.