Transform your feature phone into a powerful Unix/Linux development environment
DiscoLinux brings the complete power of Unix/Linux command-line to J2ME feature phones. With 95+ commands, Lua 5.1 interpreter, real filesystem support, 6 games, and 8 professional applications, it's the most advanced mobile OS for feature phones ever created.
- 🖥️ 95+ Unix/Linux Commands - Full bash-style terminal
- 🐍 Lua 5.1 Interpreter - Script execution + 8 filesystem functions
- 📁 Real Filesystem - JSR-75 support for TFCard/SD access
- 🎮 6 Games - Snake, Tetris, Pong, Space Invaders, Breakout, Memory
- 📱 8 Applications - Calculator, Editor, File Manager, HTTP Client, etc.
- 🎨 15 Themes - Matrix, Hacker, Ocean, Nord, Dracula, Monokai, etc.
- 🌐 HTTP Client - GET/POST + 25 predefined APIs
- ⌨️ T9 Input - Smart multi-tap with Unicode symbols
- 📊 Compatible - Works on 128x128 to 240x320 screens
---
Option 1: Pre-built JAR (Recommended)
# Download from releases
wget https://github.com/Dahmalahi/Linux-distro-for-J2ME-devices-/releases/download/v2.5/LinuxME.jar
# Transfer to phone via Bluetooth/USB
# Install and runOption 2: Build from Source
# Clone repository
git clone https://github.com/yourusername/DiscoLinux.git
cd DiscoLinux
# Compile
javac -encoding UTF-8 -source 1.3 -target 1.3 \
-bootclasspath "lib/cldcapi11.jar;lib/midpapi20.jar;lib/jsr75.jar" \
-d classes src/*.java
# Package (or use build.bat on Windows)# Launch DiscoLinux
# Login: root / root
root@disco-mobile:~$ help # Show all commands
root@disco-mobile:~$ disco # System info
root@disco-mobile:~$ ls # List files
root@disco-mobile:~$ lua # Start Lua interpreter
root@disco-mobile:~$ snake # Play Snake# File Operations
ls, cd, pwd, cat, touch, mkdir, rm, cp, mv, find, tree, du, df
# Text Processing
echo, grep, wc, head, tail, sort, uniq, cut, tr, rev
# System
ps, top, kill, date, uptime, who, w, uname, free, reboot
# Network
ping, ifconfig, netstat, wget, curl
# Utilities
calc, cal, bc, factor, seq, yes, true, false, sleep
# Shell
history, alias, clear, exit, help, man, info- Command history (50+ commands)
- Alias support (ll, la, cls, etc.)
- Environment variables
- Command piping simulation
- Tab completion hints
- Color syntax highlighting
- Multi-tap input (2=abc, 3=def, etc.)
- 100+ Unicode symbols
- Mode switching (abc/ABC/123)
- Auto-commit timeout
- Symbol menu on * key
Full Lua interpreter with filesystem access
-- Start Lua
root@disco-mobile:~$ lua
-- File operations
> fs.writefile("/test.txt", "Hello World")
> content = fs.readfile("/test.txt")
> print(content)
Hello World
-- List directory
> files = fs.listdir("/")
> for i = 1, #files do print(files[i]) end
-- Script execution
> dofile("/script.lua")8 Filesystem Functions:
fs.readfile(path)- Read file contentsfs.writefile(path, data)- Write filefs.listdir(path)- List directoryfs.mkdir(path)- Create directoryfs.deletefile(path)- Delete filefs.fileexists(path)- Check if existsfs.filesize(path)- Get file sizefs.exec(command)- Execute shell command
Access TFCard/SD card directly
# Virtual filesystem structure
file:///TFCard/DiscoSysUsr/ ← Real filesystem on TFCard
├── bin/
├── boot/
├── dev/
├── etc/
│ ├── init.d/
│ ├── hostname
│ ├── motd
│ ├── passwd
│ ├── group
│ ├── fstab
│ └── profile
├── home/
│ └── user/
│ ├── .bashrc
│ ├── readme.txt
│ ├── Documents/
│ ├── Downloads/
│ ├── Desktop/
│ ├── Pictures/
│ └── Music/
├── lib/
├── mnt/
├── opt/
├── proc/
│ ├── cpuinfo
│ └── meminfo
├── root/
├── sbin/
├── tmp/
├── usr/
│ ├── bin/
│ ├── lib/
│ ├── local/
│ │ └── bin/
│ └── share/
│ ├── man/
│ └── doc/
└── var/
├── log/
│ └── syslog
├── tmp/
├── cache/
└── run/
Supported Operations:
- Create/read/write/delete files
- Create/remove directories
- Navigate directory tree
- File permissions (simulated)
- Symlinks (simulated)
| Game | Description | Controls | Difficulty |
|---|---|---|---|
| Snake | Classic snake game | 2/4/6/8 | Easy |
| Tetris | Block stacking | 2/4/6/8, 5=rotate | Medium |
| Pong | AI opponent | 2/8 move, 5=pause | Easy |
| Space Invaders | Arcade shooter | 4/6 move, 5=fire | Medium |
| Breakout | Brick breaker | 4/6 move paddle | Easy |
| Memory | Card matching | 2/4/6/8, 5=flip | Easy |
Features:
- Optimized for 128x128, 176x208, 240x320
- Balanced difficulty (player speed = AI speed)
- Pause/resume support
- Score tracking
- Smooth gameplay (60 FPS)
- Basic operations (+, -, ×, ÷)
- Memory functions (M+, M-, MR, MC)
- Percentage calculations
- Square root
- Trigonometry (sin, cos, tan)
- Logarithms (log, ln)
- Exponentials (x², x³, xⁿ)
- Constants (π, e)
- Full-screen editing
- Save/load files
- Find/replace
- Line numbers
- Syntax highlighting
- Quick notes
- Multiple notes
- Auto-save
- Search notes
- JSR-75 integration
- Browse TFCard/SD
- Copy/move/delete
- Create directories
- File properties
- Add/edit/delete contacts
- Search contacts
- Call/SMS integration
- Import/export
- GET/POST requests
- 25 predefined APIs:
- Random Joke, Quote, User
- Cat Fact, Dog Image
- IP Location, Public IP
- ISS Position, Sunrise/Sunset
- Bored Activity, Advice
- Chuck Norris, Kanye Quotes
- Bitcoin Price, Crypto Prices
- Exchange Rates, UUID
- And more...
- Request history
- Response formatting
- Save responses
- Process viewer
- Memory usage
- Kill processes
- System info
| Theme | Colors | Style |
|---|---|---|
| Default | Green on Black | Classic |
| Matrix | Neon Green | Cyberpunk |
| Hacker | Lime | Terminal |
| Ocean | Blue tones | Calm |
| Sunset | Orange/Purple | Warm |
| Forest | Green tones | Nature |
| Desert | Yellow/Brown | Dry |
| Arctic | Cyan/White | Cold |
| Neon | Pink/Cyan | Vibrant |
| Retro | Amber | Vintage |
| Dracula | Purple theme | Popular |
| Monokai | Code editor | Developer |
| Solarized | Balanced | Popular |
| Nord | Cool blue | Modern |
| Gruvbox | Retro warm | Cozy |
Change theme: Menu → Apps → Theme Selector
- Platform: J2ME (CLDC 1.1 + MIDP 2.0)
- Screen: 128x128 pixels
- Memory: 512KB heap
- Input: Physical keypad (0-9, *, #)
- Screen: 176x208 or 240x320 pixels
- Memory: 1MB+ heap
- Storage: TFCard/SD card with JSR-75
- Network: GPRS/3G for HTTP features
- ✅ Nokia S40 series (128x128, 128x160, 240x320)
- ✅ Itel 5615 and compatible
- ✅ Samsung GT series
- ✅ J2ME emulators (Sun WTK 2.5.2, MicroEmulator)
DiscoLinux/
├── src/
│ ├── DiscoOs.java # Main application
│ ├── DiscoTerminalCore.java # Terminal (95+ commands)
│ ├── DiscoTerminalUI.java # Terminal UI
│ ├── DiscoCommand.java # disco/discoInfo commands
│ ├── T9Input.java # T9 input system
│ ├── MiniLua.java # Lua 5.1 interpreter
│ ├── RealFileSystem.java # JSR-75 filesystem
│ ├── ThemeManager.java # Theme engine
│ ├── HelpSystem.java # Help/man pages
│ ├── LoginScreen.java # Login interface
│ ├── AboutScreen.java # About dialog
│ │
│ ├── Apps/
│ │ ├── CalculatorApp.java
│ │ ├── CalculatorScientific.java
│ │ ├── TextEditor.java
│ │ ├── NotepadApp.java
│ │ ├── FileManager.java
│ │ ├── ContactManager.java
│ │ ├── HttpClient.java
│ │ └── TaskManagerApp.java
│ │
│ └── Games/
│ ├── SnakeGame.java
│ ├── TetrisGame.java
│ ├── PongGame.java
│ ├── SpaceInvadersGame.java
│ ├── BreakoutGame.java
│ └── MemoryGame.java
│
├── lib/
│ ├── cldcapi11.jar # CLDC 1.1 API
│ ├── midpapi20.jar # MIDP 2.0 API
│ └── jsr75.jar # FileConnection API
│
├── docs/ # Documentation
│ ├── COMMANDS.md # Command reference
│ ├── LUA_API.md # Lua functions
│ └── screenshots/ # Screenshots
│
├── build.bat # Windows build script
├── build.sh # Linux/Mac build script
├── README.md # This file
├── LICENSE # MIT License
└── CONTRIBUTING.md # Contribution guide
Windows:
build.batLinux/Mac:
chmod +x build.sh
./build.shManual:
javac -encoding UTF-8 -source 1.3 -target 1.3 \
-bootclasspath "lib/cldcapi11.jar;lib/midpapi20.jar;lib/jsr75.jar" \
-d classes src/*.java
# Create JAR (using your J2ME toolkit)❌ DON'T USE (Java 5+ features):
// Generics
ArrayList<String> list; // Use Vector
HashMap<K,V> map; // Use Hashtable
// Enhanced for loops
for (String s : list) // Use classic for
// String methods
String.split(regex) // Parse manually
String.replace(String, String) // Use substring()
String.isEmpty() // Use length() == 0
// Character methods
Character.isLetter(c) // Use (c >= 'a' && c <= 'z')
Character.isDigit(c) // Use (c >= '0' && c <= '9')
// StringBuilder
StringBuilder sb; // Use StringBuffer
// Autoboxing
Integer.valueOf(5) // Use new Integer(5)✅ DO USE (CLDC 1.1 compatible):
Vector list = new Vector();
Hashtable map = new Hashtable();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < list.size(); i++) {
Object item = list.elementAt(i);
}
// Manual string operations
String.substring(int, int)
String.indexOf(char)
String.charAt(int)- Add command handler in
DiscoTerminalCore.java:
if (cmd.equals("mycommand")) return cmd_mycommand(args);- Implement method:
private String cmd_mycommand(String[] args) {
// Implementation
return "Output";
}- Add to help in
HelpSystem.java:
sb.append("mycommand - Description\n");- Total Commands: 95+
- Games: 6
- Applications: 8
- Themes: 15
- Lua Functions: 8
- HTTP APIs: 25
- Lines of Code: ~25,000+
- Source Files: 30+
- Supported Screens: 128x128 to 240x320
- ✨ Added 4 new games (Pong, Space Invaders, Breakout, Memory)
- ✨ Scientific calculator with advanced functions
- ✨ Enhanced HTTP Client (GET/POST + 25 APIs)
- ✨ Improved T9 input with Unicode symbols
- ✨ Enhanced
discoInfocommand with ASCII art - ✨ Game speed optimizations (player = AI speed)
- ✨ Better screen adaptation (128x128, 176x208, 240x320)
- 🐛 Fixed CLDC 1.1 compatibility issues
- 🐛 Fixed T9 keycode mapping
- 📊 Total: 95+ commands, 6 games, 8 apps, 15 themes
- ✨ Lua 5.1 interpreter
- ✨ Real filesystem (JSR-75)
- ✨ HTTP client with APIs
- ✨ Task manager
- 📊 Total: 90+ commands
- ✨ Initial release
- ✨ 60+ Unix commands
- ✨ Snake & Tetris games
- ✨ File manager, text editor
- ✨ 15 professional themes
Contributions are welcome! Please read CONTRIBUTING.md for details.
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Follow CLDC 1.1 compatibility rules
- Test on J2ME emulator
- Commit changes (
git commit -m 'Add: AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
- 🎮 New games
- 📱 New applications
- 🔧 New Unix commands
- 🎨 New themes
- 📝 Lua library functions
- 🌐 Network utilities
- 📖 Documentation
- 🐛 Bug fixes
- 🌍 Translations
- JSR-75 required for filesystem - Not all phones support it
- T9 keyCode variations - Different phones send different codes
- Memory limits - Complex Lua scripts may fail on low-memory devices
- Proxy support - HTTP proxy not fully supported in J2ME
- Screen sizes - Some UI elements may clip on very small screens
This project is licensed under the MIT License - see LICENSE file.
MIT License
Copyright (c) 2026 Dash Animation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...
- Claude AI - AI assistant for development
- Dash Animation - Creator and maintainer
- J2ME Community - Keeping feature phones alive
- Lua Project - Amazing scripting language
- Unix/Linux - Command-line inspiration
- Contributors - Mr lima and Takumi123w
YouTube 🌐 : DASH ANIMATION V2 link: https://www.youtube.com/@dash______animationv2 Telegram 📲 : Java game uploader 240x320 link: https://t.me/javagameuploader240_320 Email 🖨️ : ndukadavid70@gmail.com Phone 📞 : +225 0788463112
video_2026-02-08_20-54-26.1.mp4
- J2ME Loader - Run J2ME apps on Android
- MicroEmulator - J2ME emulator
- Lua - Lua programming language
If you find DiscoLinux useful, consider:
- ⭐ Star this repository
- 🐛 Report bugs and suggest features
- 📝 Contribute code or documentation
- 📢 Share with the J2ME community
- ☕ Buy me a coffee (link)
Made with ❤️ for the J2ME community
Keep feature phones alive! 📱💪