Eliott 73fb76098e
Some checks failed
CI / markdown-lint (push) Failing after 14s
Reorganize BBeOS project structure for better maintainability
- Reorganized directory structure following open source best practices
- Created src/ directory for all source code components
- Moved build artifacts to build/ subdirectories
- Organized documentation into phases/, guides/, and api/ subdirectories
- Moved third-party code to vendor/ directory
- Moved downloads to downloads/ directory
- Updated all build scripts to reference new directory structure
- Created comprehensive PROJECT_STRUCTURE.md documentation
- Added DEVELOPMENT_GUIDE.md as main entry point
- Improved separation of concerns and maintainability
- Follows standard open source project conventions
2025-08-01 11:48:06 +02:00

BBeOS - BlackBerry Classic Linux OS

A lightweight, secure, non-Android, Linux-based operating system for the BlackBerry Classic (Q20) that transforms this iconic device into a modern, privacy-focused smartphone.

🎯 Project Goals

  • Native Hardware Support: Boot on ARMv7 architecture with full hardware integration
  • Physical Interface Optimization: GUI designed for trackpad navigation and physical keyboard
  • Core Telephony: Complete phone functionality (calling, SMS, Wi-Fi, GPS)
  • Security-First: Privacy-focused design with minimal attack surface
  • Open Source: Community-driven development with transparent codebase

📋 Hardware Specifications

BlackBerry Classic (Q20) Hardware

  • SoC: Qualcomm MSM8960 (Snapdragon S4 Plus) - ARMv7 dual-core 1.5GHz
  • GPU: Adreno 225
  • RAM: 2GB LPDDR2
  • Storage: 16GB eMMC
  • Display: 3.5" 720x720 IPS LCD (1:1 aspect ratio)
  • Keyboard: Physical QWERTY with trackpad
  • Modem: Qualcomm MDM9615 (LTE/3G)
  • Connectivity: Wi-Fi 802.11n, Bluetooth 4.0, GPS
  • Battery: 2515mAh removable

🏗️ Project Structure

BBeOS/
├── docs/                    # Documentation and research
├── hardware/               # Hardware specifications and drivers
├── kernel/                 # Linux kernel configuration
├── rootfs/                 # Root filesystem builds
├── ui/                     # User interface components
├── telephony/              # Phone and messaging stack
├── tools/                  # Development and build tools
├── scripts/                # Automation scripts
└── releases/               # Release builds and images

🚀 Development Phases

Phase 1: Research & Feasibility (1-2 months)

  • Hardware specification analysis
  • Bootloader investigation
  • Firmware extraction and analysis
  • Go/No-Go decision

Phase 2: Bootstrapping (2-4 months)

  • Minimal Linux kernel boot
  • Basic hardware access
  • Development environment setup

Phase 3: Hardware Support (2-4 months)

  • Device drivers development
  • Input/output systems
  • Display and audio support

Phase 4: User Interface (2-3 months)

  • Wayland-based GUI
  • Keyboard-centric navigation
  • Core applications

Phase 5: Telephony Stack (2-4 months)

  • Modem integration
  • Call/SMS functionality
  • Network connectivity

Phase 6: Packaging & Updates (2 months)

  • System packaging
  • Update mechanisms
  • Security hardening

Phase 7: Community & SDK (Ongoing)

  • Developer tools
  • Application ecosystem
  • Documentation

🔧 Technical Stack

  • Kernel: Linux 6.x with MSM8960 support
  • Init System: systemd or OpenRC
  • Display Server: Wayland with custom compositor
  • UI Framework: Qt 6 or GTK 4
  • Telephony: ofono/ModemManager
  • Package Management: OSTree + Flatpak
  • Build System: Buildroot or Yocto

📚 Getting Started

See the Development Guide for setup instructions and the Hardware Reference for detailed specifications.

🤝 Contributing

This is an open-source project. See CONTRIBUTING.md for guidelines.

📄 License

GPL v3 - See LICENSE for details.

Description
A test at creating a new OS for the blackberry Q20 to give it a new life.
Readme 242 KiB
Languages
C 55.1%
Shell 32.2%
HTML 8.1%
Makefile 4.6%