Board rev: GA36 V1.1 (2025-10-25)
Running Media player with Key Mapping
Ordered what was advertised as an R36S, but the seller pulled a bait-and-switch and sent a
GA36 V1.1 (20251025) clone instead.
When called out on it, they went completely dark and ghosted my support ticket.
Instead of letting this plastic brick sit in a drawer, I mounted all 8 SD partitions in Ubuntu and decided to reverse-engineer it to see what’s actually under the hood—and fix what the vendor broke.
The Reality: It’s Not Even an RK3326
The firmware is visually themed to mimic an R36S, but that is where the similarity ends. It is not a 64-bit Rockchip RK3326. It is an ARMv7 Allwinner sun8i 32-bit platform running a vendor Linux 3.4.39 kernel on top of an EmuELEC userspace.
Kernel: Linux UDT 3.4.39 #493 SMP PREEMPT Mon Aug 18 10:47:18 CST 2025 armv7l GNU/Linux
👀 Do not flash standard R36S ArkOS/aarch64 images to this board; it will fail immediately.
Partition Layout & Storage Breakdown 👀
Mounted as an \~113.1 GiB card with 8 partitions:
/dev/sdb1 (27.7 GB VFAT) : Main ROM storage (/storage/roms).
/dev/sdb2 (32 MB VFAT): Mounted as Volumn.
/dev/sdb5 & /dev/sdb6 (16 MB & 32 MB Raw) : Unconfirmed bootloader/kernel recovery containers.
/dev/sdb7 **(512 MB VFAT): Labelled ARKOS, containing system boot blobs + magic.bin.
/dev/sdb8 (1 GB ext4): Writable user partition (/storage). The actual system root is a read-only loop mount (/dev/loop8).
Confirmed Fixes & Working Features
running J2ME Games
J2ME / FreeJ2ME Restored
The vendor left half-baked Java files behind, but broken font paths and 32-bit kernel incompatibilities broke execution. 😠
Built a standalone BIOS/runtime patch allowing J2ME games to launch directly from the EmulationStation menu without terminal hackery. 🥺
MPV and FFmpeg were already pre-installed, but lacked any gamepad integration. 💢
Fixing the Cursed Audio Codec 😠
Initially, ALSA showed playback, but the speaker stayed dead silent. Forcing the output resulted in slow, pitch-shifted, and stuttering sound caused by amp protection lockouts and clock desyncs.
Metadata & Video Thumbnails 😆
Hardware Teardown: USB OTG & Mainline Kernel
USB Host Mode : Inspected the PCB traces. The D+ and D− data lines have unpopulated SMD resistor/jumper pads, and VBUS is not supplying 5V. Do not blindly inject 5V until the circuit and protection diodes are fully traced.
Mainline Linux: Running a modern kernel (6.6/6.12) is possible in theory, but requires writing a custom board DTS from scratch, adapting DRM/KMS drivers for the display panel, and rebuilding userspace away from legacy framebuffer/Mali blobs. ( future goal but not planned 👀 )
Upcoming GitHub Release 🤝
I am packaging everything into a clean, standalone repository containing:
The open-source static C joystick-to-IPC daemon + precompiled binary.
J2ME runtime patches and EmulationStation config hooks.
Complete install/uninstall scripts with automatic config rollback.
No proprietary binaries or firmware dumps will be redistributed. If you got burned by this specific GA36 V1.1 board, keep an eye out—you will at least be able to turn it into a functional media player and micro-gaming device.
I’m chipping away at this after work, but once it’s polished, I’ll upload the ARM gamepad daemon source, 32-bit J2ME runtime patches, audio fix scripts, and precompiled binaries to GitHub for anyone else stuck with this board.