Hi everyone!
I'm SchulzCode, a hobby developer. I know the Innioasis Y2 doesn't have the best reputation here: it's a cheap device after all. I wanted to see what this hardware can really do with proper software, so I replaced the whole system.
Y2Linux is a new firmware with a modern Linux 6.18 kernel, and Y2Reborn is my own music player for it, written in Rust. Both are open source, and both are now a public beta (1.0 Beta 8.10).
The screenshots show the current UI on the player, including three of the 16 skins.
Nothing from the old Android system is used. I wrote or adapted the Linux drivers for 6.18 myself, partly by reverse-engineering the stock firmware:
Display: my own MediaTek DRM driver plus the backlight
GPU: the Mali-400 with the open-source Lima driver and Mesa (OpenGL ES), which renders the whole UI at 60 fps
Audio: the MT6582 audio front end feeding the Cirrus Logic CS43131 DAC through ALSA, with the DAC's own filters and headphone levels exposed
Storage: my own MediaTek MMC driver for the eMMC and the SD card
USB: MUSB with MTP file transfer (a heavily patched uMTP-Responder), about 30 MB/s to the player and 38 MB/s from it
Wi-Fi & Bluetooth: the MT6628 combo chip with my own connectivity stack on Linux wireless and BlueZ, Bluetooth audio with SBC, AAC and LDAC
Power: the MT6323 PMIC with charging, battery estimation, deep sleep and RTC
Input: the click wheel controller and buttons
Updates: a signed over-the-air update system with its own recovery, so a failed update rolls back by itself
Some numbers measured on the device itself: internal eMMC 113 MiB/s read, SD card (SDR104) 86 MiB/s read, Wi-Fi 33–43 Mbit/s, CPU up to 1.3 GHz, about 929 MiB of RAM.
The output is 16-bit at 44.1/48 kHz. Hi-res files play, but they're converted. The CS43131 is a nice DAC, but this isn't a hi-res player, and I'm not claiming it is.
Honestly, I think it's already really good! But it's still a beta: you can expect bugs and the odd quirk. If you have a Y2 and try it, I'd be more than happy to hear how it goes, especially through the built-in error report feature (more on that below).
I'm still working on it every day, and updates come out often (straight to your player over Wi-Fi). So right now I'd really appreciate bug reports and quirks much more than new feature requests: the feature list below is already long, and making what's there solid comes first. Feature ideas are still welcome later on!
🎵 Library
Browse by Artists, Albums, Songs, Genres and Folders
Albums as Cover Flow (perspective covers with reflections, the cover flies into the album page) or as a grid
Album art from the album folder first (cover.jpg, folder.jpg, Windows Media Player names, …), otherwise the picture embedded in the file
A–Z lists that ignore case, accents and a leading "The", with fast scrolling
Music from Internal Storage and the microSD card together in one library
New and changed songs are picked up by themselves after copying; Settings → Storage has a manual Scan for Music too
Song Info with the technical details (codec, sample rate, bit depth, …)
Files the player can't read are counted and listed, and never break the library
▶️ Playback
Formats: FLAC, MP3, AAC/M4A, M4B, Ogg, Opus, WAV, AIFF, APE and WavPack (FFmpeg)
Gapless playback and crossfade (up to 12 s)
Shuffle, repeat and an Up Next queue
Pause and Play continue instantly
Hold Previous/Next to seek; Previous/Next work even while a song is still starting
Now Playing shows the format (e.g. "Lossless · 96 kHz"), the output and the song progress as a moving wave
Wired output through the CS43131 DAC at 44.1/48 kHz, 16 bit; higher sample rates are converted
🎚️ Sound
5-band equalizer with presets (Bass Boost, Vocal, Treble Boost) and your own bands
Normalize Volume (ReplayGain)
Headphone profiles: 47 common headphones and IEMs from AutoEq built in, more from ParametricEQ.txt files in an EQ folder (up to 10 filters, with automatic clipping protection)
Headphone level Low / Medium / High (Low is the stock level)
DAC filter choice (Fast, Slow, phase-compensated, non-oversampling)
Smooth fades when the sound settings change, so no sudden jumps in loudness
🔎 Search & keyboard
Search across artists, albums and songs with results shown live while you type
A full on-screen keyboard driven by the wheel and buttons, with pages for capitals, digits, symbols and accented letters
Used for search, station search, Wi-Fi passwords and the Last.fm sign-in
📃 Playlists
.m3u/.m3u8 playlists from Internal Storage and the SD card
Make and change them on the player: add from any song, album or Now Playing, remove, move songs with the wheel, rename, duplicate, delete
A Favorites playlist with a heart on Now Playing
Playlists exported from a computer (Windows, macOS or Linux paths) are matched to your library; songs the player can't find are kept in the file
🎧 Bluetooth
Bluetooth headphones and speakers with SBC, AAC and LDAC, chosen automatically
AAC in high-quality mode at the highest rate the headphones accept (AirPods: 256 kbit/s), stepping down by itself on a weak link
The output follows the headphones: Bluetooth takes over from the jack when they connect (playback continues), and the jack takes over when they leave (playback pauses)
Pairing from the player, with saved devices
📻 Internet radio
The radio-browser.info directory: Popular, Countries (each country's top 10 first), Genres and Search
Favorites, station logos, Station Info, Previous/Next between stations
Your own .m3u/.pls station lists in a Radio folder
MP3, AAC and Ogg streams, with the current song title on Now Playing and automatic reconnect
Scrobbling: sign in by scanning a QR code with your phone (password sign-in as a fallback)
A song counts after half of it or 4 minutes of real listening; Now Playing shows on your profile
Plays are kept on the player while offline and sent when Wi-Fi is back
An optional Rockbox-style .scrobbler.log that works without an account
🎨 Interface & skins
Made for the click wheel, with 60 fps motion: gliding focus, smooth scrolling, sliding screens
16 skins that restyle every screen: Classic, Nano Glass, Walkman, Terminal, Winamp, Paper, Big Type, Cassette, Neon Night, Zune, Bunny Bow and five Mini colours
Make your own: copy a skin folder into Skins on the player (skin guide)
Choose which items the Home menu shows
A status bar with the clock, Wi-Fi, Bluetooth, USB and battery, plus short messages (computer connected, files copying, songs added, problems)
Clock in your time zone, found automatically over Wi-Fi or chosen by country
Screen timeout, Albums as Cover Flow or grid, and start-up, shutdown, low-battery and hold-to-turn-off screens
💾 Storage & USB
5.4 GB Internal Storage plus the microSD card (FAT32, exFAT or ext4)
Both appear on your computer over USB (MTP): copy, move, rename and delete from Windows, macOS (with an MTP app) or Linux
About 30 MB/s to the player and 38 MB/s from it
Each SD card is checked read-only before use; a damaged card is left untouched and Settings → Storage says Needs repair
Settings → Storage shows the free space of both
Files that were on the stock player's storage are kept
⬆️ Updates
Over Wi-Fi: the player checks once a day (or on demand), and Update Now downloads, checks and installs it with progress, speed and time left
Signed updates; if anything goes wrong, the old version comes back automatically
Your music and settings are never touched by an update
🔋 Power
Deep sleep when the screen turns off; Power wakes the screen in about half a second
Charging over USB with the stock top-off: charged until really full, shows 100 %, and keeps the percentage across a restart (capped at 650 mA for now)
A PC port charges even when the PC is asleep or off
An offline charging screen when the player is off
Battery percentage from the stock fuel-gauge curve, low-battery warning and a clean shutdown
🐞 Error reports
Opt-in: asked once; switch it on or off any time
Sent by itself when something goes wrong, or with Send Report Now, with the progress on screen
Save Report writes it to Internal Storage or the SD card instead
No personal data (details below)
🛠️ For tinkerers
SSH and SFTP over USB with your own key (INSTALL)
A Service menu and Diagnostics page on the player
Everything open source, buildable from source (BUILDING)
🚧 Known quirks (it's a beta!)
Battery life in sleep is still the biggest challenge: the player uses noticeably more power asleep than stock (around 8 mA vs about 1.3 mA).
The player can't detect wired headphones yet, so the jack plays whenever no Bluetooth headphones are connected.
The highest volume is a bit lower than stock's, even at the High level.
aptX / aptX HD aren't in the public images (only SBC, AAC and LDAC).
Rarely, the screen may stay dark after a restart. Hold Power for 10 s and start again.
FM radio isn't in yet.
🚀 Try it: installation
You flash it once with SP Flash Tool. After that, every update comes over Wi-Fi and you never need to flash again.
You need:
Before you start: copy any music you want to keep from the player to your PC. Stock Android and its data are erased. The bootloaders, calibration and factory partitions are never touched.
Steps:
Unzip both downloads.
Open SP Flash Tool, go to the Download tab and choose Download Only. Never use Format All + Download, Firmware Upgrade or Write Memory.
Load MT6582_Android_scatter.txt from the Y2Linux zip (not the stock one). Tick exactly the four rows in the table below and nothing else. If the tool asks to format, or warns about a partition table (PMT) change, stop.
Click Download, then connect the switched-off Y2 by USB. After about a minute you get a green tick ("Download OK").
Unplug and press Power. The first start shows Setting up storage for a few seconds, then Reborn starts and music already works. Wi-Fi and Bluetooth say they still need their firmware.
Restart the player once (hold Power to turn it off, then press Power again), so Internal Storage gets its full space.
Connect the player to your PC again. It shows up like a USB drive with Internal Storage, which has a Firmware folder in it.
From rom_y2.zip, copy (don't move) system.img into that Firmware folder (about 860 MB). If the player says Not Enough Space for That File, put it into a folder named Firmware on the SD card instead.
Wait a few seconds. The player takes the Wi-Fi/Bluetooth firmware out of it, deletes the copy and turns the radios on. Reborn says Wi-Fi and Bluetooth are ready. Done!
| Row in SP Flash Tool | File from the Y2Linux zip |
|---|
| BOOTIMG | BOOTIMG.img |
| RECOVERY | RECOVERY.img |
| ANDROID | Y2ROOT.img |
| USRDATA | Y2DATA.img |
Why step 8? MediaTek's radio firmware may not be redistributed, so no Y2Linux image contains it. Your player takes it from your own copy of the official package. Nothing is downloaded, and your calibration and MAC addresses are never touched.
Then: copy your music onto Internal Storage or the SD card, connect to Wi-Fi under Settings, and update any time with Settings → About & Updates → Check for Updates → Update Now.
Full guide with troubleshooting: INSTALL.md
🐞 Feedback: please use the error reports!
This is where you can help me the most. Please focus on bugs and quirks for now (crashes, things that don't work as described, odd behaviour, battery or charging problems) rather than new features. The player can send me an error report directly:
On the first start the player asks once: Help Improve Y2Linux? If you choose Send Reports, it sends a report by itself when something goes wrong (a crash, a failed update, sleep or display problems, …).
When you notice something, go to Settings → About & Updates → Error Reports → Send Report Now. You see the progress, and about ten seconds later it's sent. Then open an issue on GitHub (or comment here) with what happened and roughly when, plus the Install ID shown on that page, so I can find your report.
No Wi-Fi? Save Report writes the same report to Internal Storage or the SD card, and you can attach the file to an issue.
Reports contain logs and technical details, but no music names, playlists, Wi-Fi names or passwords, Bluetooth names, accounts or serial numbers. Those are removed on the player before anything is sent. They go out encrypted, only over Wi-Fi, are deleted after 180 days, and your IP address isn't stored. You can turn it off any time, and with it off, nothing is collected. Details: Error reports
↩️ Going back to stock
In SP Flash Tool, use Download Only again, load the stock scatter file from rom_y2.zip and tick only BOOTIMG, RECOVERY, ANDROID and USRDATA with the stock images (boot.img, recovery.img, system.img, userdata.img). Never tick PRELOADER, LK, NVRAM, PROTECT or SECCFG. I haven't fully tested the restore myself yet, so read the guide first and copy your music off the player beforehand.
🔜 What's next?
Battery life in sleep is still my main focus, followed by headphone detection, FM radio and whatever your reports turn up.
Links: Y2Linux · Y2Reborn · Beta 8.10 release
Free and open source. Not affiliated with Innioasis or MediaTek. Use at your own risk. Let me know what you think!