A Linux From Scratch (LFS) based mobile distribution inspired by Android's approach but with an iOS-like interface.
This project aims to build a custom Linux distribution from scratch, tailored for mobile devices. It combines the flexibility of LFS with mobile-specific features like touchscreen support, gesture-based navigation, and a clean, intuitive user interface reminiscent of iOS.
- LFS Base: Built entirely from source using Linux From Scratch methodology
- Mobile Kernel: Linux kernel configured with touchscreen, sensors, and mobile hardware support
- Graphical Stack: Wayland-based display server with touchscreen drivers
- iOS-like UI: Custom user interface with launcher, gestures, and modern design
- Mobile Apps: Integrated applications optimized for touch interaction
- Package Management: System for managing software packages
sources/: Downloaded source packages for LFS buildtools/: Build tools and scriptsui/: TypeScript-based user interface (React)apps/: Mobile applicationsconfig/: Configuration files for kernel, initramfs, etc.
- Follow the LFS guide to build the base system
- Configure the kernel with mobile features
- Install graphical stack and drivers
- Build and install the custom UI
- Integrate mobile applications
The system features an authentic iOS-like interface that replicates Apple's design language with pixel-perfect accuracy:
- Status Bar: Carrier name, real-time clock, signal/wifi/battery indicators (iOS 15+ style)
- Home Screen: 4x6 app grid (24 apps per page) with multiple pages
- Page Navigation: Swipe gestures to navigate between pages with page indicators
- Dock: 4 favorite apps with notification badges and spring animations
- Control Strip: Bottom strip with Notification Center, Control Center, and App Switcher access
- Notification Center: Pull-down notification panel with message previews
- Control Center: Quick toggles for WiFi, Bluetooth, brightness, volume, etc.
- App Switcher: Card-based multitasking interface for open applications
- Window Management: Full desktop windowing with drag, minimize, maximize, close
- Animations: Authentic iOS spring animations, bounce effects, and micro-interactions
- Typography: SF Pro Display simulation with Inter font
- Colors: Authentic iOS color palette with proper contrast ratios
- Blur Effects: Backdrop filters and glass morphism throughout
- Rounded Corners: Consistent 16px border radius for app icons, 20px for panels
- Shadows: Subtle depth with proper elevation hierarchy
- Spacing: Apple's 8px grid system and proper margins
- Gestures: Touch-first interactions with swipe navigation
cd ui
./start.shThis will start a development server at http://localhost:3000.
- Status Bar: Carrier, time, signal, WiFi, battery (iOS 15+ design)
- App Grid: 4x6 layout with 24 apps per page, multiple pages support
- Page Indicators: Dots showing current page and total pages
- Dock: 4 apps with notification badges and spring hover effects
- Control Strip: Bottom access to system controls
- Notification Center: Full-featured notification management
- Control Center: System toggles and sliders
- App Switcher: iOS-style card-based multitasking
- Window Manager: Desktop-quality window management
- Animations: Pixel-perfect iOS spring animations
- React 18: Component-based UI with hooks for state management
- Express.js: REST API for system integration and app launching
- Touch Gestures: Custom touch event handling for swipe navigation
- CSS Animations: Hardware-accelerated animations with cubic-bezier curves
- Responsive Design: Mobile-first with proper viewport handling
- Webpack: Optimized bundling with code splitting
- Babel: Modern JavaScript transpilation for broad compatibility
- Wayland: Display server integration for native window management
For a full system installation with kernel integration:
# Run the complete installation script
sudo ./install.shThis will:
- Install the interface to
/usr/share/oblivionos/ - Configure Wayland integration
- Create system user and services
- Set up systemd service for auto-start
-
Build the interface:
cd ui npm install npm run build -
Configure Wayland:
sudo ./config/wayland-setup.sh
-
Start the server:
cd ui node server.js
./demo-windows.shThis demonstrates the window management capabilities with drag-and-drop, minimize/maximize, and multiple window support.
Use QEMU to emulate mobile hardware for testing the complete distribution:
qemu-system-x86_64 \
-kernel linux-6.16.1 \
-initrd initramfs.img \
-append "console=ttyS0 root=/dev/sda1" \
-drive file=oblivionos.img,if=virtio \
-net nic -net user \
-m 2GContributions are welcome! Please see the issues for current tasks and feature requests.