diff --git a/.gitignore b/.gitignore index 9e17d20..10ea436 100644 --- a/.gitignore +++ b/.gitignore @@ -1,25 +1,375 @@ +# BBeOS Project .gitignore + +# ============================================================================= +# KERNEL & BOOTLOADER +# ============================================================================= + # Kernel source (large external repository) kernel-source/ -# Build artifacts +# Kernel build artifacts *.o *.ko *.dtb *.dtbo +*.dtbo.img zImage -initramfs.img +Image +vmlinux +vmlinuz +System.map +Module.symvers +modules.order +modules.builtin +modules.builtin.modinfo + +# Device tree files +*.dts +*.dtsi +*.dtb +*.dtbo + +# Boot images boot.img +recovery.img +system.img +userdata.img +cache.img +*.img + +# Initramfs +initramfs.img +initramfs.cpio +initramfs.cpio.gz + +# ============================================================================= +# ROOT FILESYSTEM +# ============================================================================= + +# Root filesystem builds +rootfs/ +rootfs-build/ +rootfs.tar.gz +rootfs.cpio +rootfs.cpio.gz + +# BusyBox build artifacts +busybox/ +busybox-*/ + +# ============================================================================= +# BUILD TOOLS & COMPILATION +# ============================================================================= + +# Cross-compilation toolchains +toolchain/ +arm-linux-gnueabihf/ +gcc-arm-linux-gnueabihf/ + +# Build directories +build/ +build-*/ +out/ +output/ +dist/ + +# Object files and libraries +*.o +*.a +*.so +*.so.* +*.dylib +*.dll + +# Executables +*.exe +*.bin +*.elf + +# ============================================================================= +# PACKAGING & DEPLOYMENT +# ============================================================================= + +# Package files +*.deb +*.rpm +*.tar.gz +*.tar.bz2 +*.zip +*.7z + +# Flashable images +*.img +*.bin +*.flash + +# Update packages +*.update +*.ota + +# ============================================================================= +# DEVELOPMENT & IDE +# ============================================================================= + +# Visual Studio Code +.vscode/ +*.code-workspace + +# IntelliJ IDEA +.idea/ +*.iml +*.ipr +*.iws + +# Sublime Text +*.sublime-project +*.sublime-workspace + +# Vim +*.swp +*.swo +*~ + +# Emacs +*~ +\#*\# +/.emacs.desktop +/.emacs.desktop.lock +*.elc +auto-save-list +tramp +.\#* + +# ============================================================================= +# OPERATING SYSTEM +# ============================================================================= + +# macOS +.DS_Store +.AppleDouble +.LSOverride +Icon +._* +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# Windows +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db +*.tmp +*.temp +Desktop.ini +$RECYCLE.BIN/ +*.cab +*.msi +*.msix +*.msm +*.msp +*.lnk + +# Linux +*~ +.fuse_hidden* +.directory +.Trash-* +.nfs* + +# ============================================================================= +# TEMPORARY & LOG FILES +# ============================================================================= # Temporary files *.tmp -*.swp -*~ +*.temp +*.bak +*.backup +*.old +*.orig +*.rej -# IDE files -.vscode/ -.idea/ -*.sublime-* +# Log files +*.log +logs/ +log/ -# OS files -.DS_Store -Thumbs.db \ No newline at end of file +# Core dumps +core +core.* +*.core + +# ============================================================================= +# SECURITY & KEYS +# ============================================================================= + +# Private keys and certificates +*.key +*.pem +*.crt +*.cert +*.p12 +*.pfx +*.keystore + +# SSH keys +id_rsa +id_rsa.pub +id_ed25519 +id_ed25519.pub + +# GPG keys +*.gpg +*.asc + +# ============================================================================= +# TESTING & EMULATION +# ============================================================================= + +# QEMU files +*.qcow2 +*.vmdk +*.vdi +*.vhd +*.raw + +# Test artifacts +test-results/ +coverage/ +*.coverage +.coverage +.pytest_cache/ + +# ============================================================================= +# DOCUMENTATION BUILD +# ============================================================================= + +# Documentation build artifacts +docs/_build/ +docs/build/ +site/ +_site/ + +# ============================================================================= +# DEPENDENCIES & PACKAGE MANAGERS +# ============================================================================= + +# Node.js +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.npm +.yarn-integrity + +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# Virtual environments +venv/ +env/ +ENV/ +env.bak/ +venv.bak/ + +# ============================================================================= +# GITEA ACTIONS & CI/CD +# ============================================================================= + +# Gitea Actions +.gitea/actions/ +.gitea/workflows/.cache/ + +# Runner files +runner/ +*.runner + +# ============================================================================= +# PROJECT SPECIFIC +# ============================================================================= + +# BBeOS specific build artifacts +bbeos-*.img +bbeos-boot.img +bbeos-system.img +bbeos-recovery.img + +# Hardware testing results +hardware-test-results/ +test-reports/ + +# Emulation files +emulation/ +qemu-output/ + +# SDK builds +sdk-build/ +sdk-dist/ + +# Application builds +apps/build/ +ui/build/ +telephony/build/ +packaging/build/ + +# ============================================================================= +# MISC +# ============================================================================= + +# Backup files +*.bak +*.backup +*.old + +# Compressed files +*.gz +*.bz2 +*.xz +*.lzma + +# Archive files +*.tar +*.zip +*.rar +*.7z + +# Database files +*.db +*.sqlite +*.sqlite3 + +# Configuration files with sensitive data +config.local.* +.env +.env.local +.env.*.local \ No newline at end of file diff --git a/QUICK_START.md b/QUICK_START.md new file mode 100644 index 0000000..6429a48 --- /dev/null +++ b/QUICK_START.md @@ -0,0 +1,143 @@ +# BBeOS Quick Start Guide + +## ๐ **What You Can Do Right Now** + +### **Option 1: See BBeOS Interface (Instant)** +```bash +./scripts/emulate-terminal.sh +``` +**What happens**: You'll see the BBeOS home screen with apps +**Time**: 5 seconds +**Requirements**: None + +### **Option 2: See BBeOS Demo (Simple)** +```bash +./scripts/emulate-simple.sh +``` +**What happens**: Shows you what BBeOS would look like +**Time**: 10 seconds +**Requirements**: None + +## ๐ฏ **Which Scripts Are Actually Useful** + +### **โ Use These Scripts:** + +| Script | What It Does | When to Use | +|--------|-------------|-------------| +| `emulate-terminal.sh` | **Shows BBeOS interface** | **Right now!** | +| `emulate-simple.sh` | **Shows BBeOS demo** | **Right now!** | + +### **โ Ignore These Scripts (For Now):** + +| Script | Why Ignore | +|--------|------------| +| `emulate-bbeos.sh` | Requires kernel build (complicated) | +| `build-*.sh` | Only for development | +| `hardware-test.sh` | Only for real hardware | + +## ๐ฎ **Try It Right Now** + +### **Step 1: See the Interface** +```bash +./scripts/emulate-terminal.sh +``` + +You'll see: +``` +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โ BBeOS v1.0.0 - BlackBerry Classic Q20 โ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค +โ Status: Ready [12:34] โ +โ โ +โ โโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโ โ +โ โ ๐ โ โ ๐ฌ โ โ ๐ โ โ โ๏ธ โ โ +โ โPhoneโ โSMS โ โEdit โ โSet โ โ +โ โโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโ โ +โ โ +โ โโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโ โ +โ โ ๐งฎ โ โ ๐ โ โ ๐ โ โ ๐ โ โ +โ โCalc โ โFilesโ โWeb โ โInfo โ โ +โ โโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโ โ +โ โ +โ โโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโ โ +โ โ ๐ถ โ โ ๐ โ โ ๐ฑ โ โ ๐ต โ โ +โ โWiFi โ โPowerโ โPhoneโ โMusicโ โ +โ โโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโ โ +โ โ +โ โโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโ โ +โ โ ๐บ๏ธ โ โ ๐ง โ โ ๐ โ โ โ โ โ +โ โGPS โ โEmailโ โCal โ โHelp โ โ +โ โโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโ โ +โ โ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค +โ [โโ] Navigate [Enter] Open [Esc] Back [Q] Quit โ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +``` + +**Controls:** +- **Arrow Keys**: Move between apps +- **Enter**: Open selected app +- **Esc**: Go back +- **Q**: Quit + +### **Step 2: Try the Apps** +- Navigate to **Calculator** and press Enter +- Navigate to **Text Editor** and press Enter +- Navigate to **Settings** and press Enter +- Navigate to **Info** and press Enter + +## ๐ฏ **What You're Seeing** + +### **Home Screen** +- **4x4 App Grid**: 16 applications organized in a grid +- **Status Bar**: Shows time and system status +- **Navigation**: Keyboard-based navigation (like the real Q20) + +### **Applications** +- **๐ Phone**: Make calls (simulated) +- **๐ฌ SMS**: Send messages (simulated) +- **๐ Editor**: Text editor for documents +- **โ๏ธ Settings**: System configuration +- **๐งฎ Calc**: Calculator with memory functions +- **๐ Files**: File manager +- **๐ Web**: Web browser (simulated) +- **๐ Info**: System information +- **๐ถ WiFi**: Network settings +- **๐ Power**: Battery and power settings +- **๐ต Music**: Music player (simulated) +- **๐บ๏ธ GPS**: Navigation (simulated) +- **๐ง Email**: Email client (simulated) +- **๐ Cal**: Calendar (simulated) +- **โ Help**: Help system + +## ๐ **Next Steps (Optional)** + +### **If You Want to See More:** +```bash +./scripts/emulate-simple.sh +``` + +### **If You Want to Build the Full System:** +```bash +# Install dependencies +sudo apt-get install qemu-system-arm gcc-arm-linux-gnueabihf + +# Build the system (takes time) +./scripts/build-kernel.sh +./scripts/build-rootfs.sh + +# Run full emulation +./scripts/emulate-bbeos.sh setup +./scripts/emulate-bbeos.sh start +``` + +## ๐ **That's It!** + +You've now experienced BBeOS! The terminal emulation shows you exactly what the interface looks like and how it works. + +**The key insight**: BBeOS is designed for the BlackBerry Classic Q20's unique square display and physical keyboard, making it perfect for productivity and communication. + +**Try the terminal emulation now:** +```bash +./scripts/emulate-terminal.sh +``` \ No newline at end of file diff --git a/apps/Makefile b/apps/Makefile new file mode 100644 index 0000000..1ed1a56 --- /dev/null +++ b/apps/Makefile @@ -0,0 +1,177 @@ +# BBeOS Applications Makefile +# BlackBerry Classic Q20 Application Build System + +CC = gcc +CFLAGS = -Wall -Wextra -std=c99 -O2 -g +LDFLAGS = -lm -ltermios + +# Directories +APPS_DIR = . +CORE_DIR = $(APPS_DIR)/core +UTILITIES_DIR = $(APPS_DIR)/utilities +DEVELOPMENT_DIR = $(APPS_DIR)/development +BUILD_DIR = $(APPS_DIR)/build + +# Core applications +CORE_APPS = calculator text-editor file-manager settings +CORE_SOURCES = $(CORE_DIR)/calculator.c $(CORE_DIR)/text-editor.c + +# Utility applications +UTILITY_APPS = system-info network-tools backup-tool +UTILITY_SOURCES = $(UTILITIES_DIR)/system-info.c $(UTILITIES_DIR)/network-tools.c + +# Development tools +DEV_APPS = debugger profiler +DEV_SOURCES = $(DEVELOPMENT_DIR)/debugger.c $(DEVELOPMENT_DIR)/profiler.c + +# All applications +ALL_APPS = $(CORE_APPS) $(UTILITY_APPS) $(DEV_APPS) + +# Default target +all: $(ALL_APPS) + +# Core applications +calculator: $(CORE_DIR)/calculator.c + $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) + +text-editor: $(CORE_DIR)/text-editor.c + $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) + +file-manager: $(CORE_DIR)/file-manager.c + $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) + +settings: $(CORE_DIR)/settings.c + $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) + +# Utility applications +system-info: $(UTILITIES_DIR)/system-info.c + $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) + +network-tools: $(UTILITIES_DIR)/network-tools.c + $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) + +backup-tool: $(UTILITIES_DIR)/backup-tool.c + $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) + +# Development tools +debugger: $(DEVELOPMENT_DIR)/debugger.c + $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) + +profiler: $(DEVELOPMENT_DIR)/profiler.c + $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) + +# Cross-compilation for ARM +arm-calculator: $(CORE_DIR)/calculator.c + arm-linux-gnueabihf-gcc $(CFLAGS) -o $@ $< $(LDFLAGS) + +arm-text-editor: $(CORE_DIR)/text-editor.c + arm-linux-gnueabihf-gcc $(CFLAGS) -o $@ $< $(LDFLAGS) + +arm-file-manager: $(CORE_DIR)/file-manager.c + arm-linux-gnueabihf-gcc $(CFLAGS) -o $@ $< $(LDFLAGS) + +arm-settings: $(CORE_DIR)/settings.c + arm-linux-gnueabihf-gcc $(CFLAGS) -o $@ $< $(LDFLAGS) + +arm-system-info: $(UTILITIES_DIR)/system-info.c + arm-linux-gnueabihf-gcc $(CFLAGS) -o $@ $< $(LDFLAGS) + +arm-network-tools: $(UTILITIES_DIR)/network-tools.c + arm-linux-gnueabihf-gcc $(CFLAGS) -o $@ $< $(LDFLAGS) + +arm-backup-tool: $(UTILITIES_DIR)/backup-tool.c + arm-linux-gnueabihf-gcc $(CFLAGS) -o $@ $< $(LDFLAGS) + +arm-debugger: $(DEVELOPMENT_DIR)/debugger.c + arm-linux-gnueabihf-gcc $(CFLAGS) -o $@ $< $(LDFLAGS) + +arm-profiler: $(DEVELOPMENT_DIR)/profiler.c + arm-linux-gnueabihf-gcc $(CFLAGS) -o $@ $< $(LDFLAGS) + +# Build all ARM versions +arm-all: arm-calculator arm-text-editor arm-file-manager arm-settings \ + arm-system-info arm-network-tools arm-backup-tool \ + arm-debugger arm-profiler + +# Create application packages +package: $(ALL_APPS) + mkdir -p $(BUILD_DIR) + tar -czf $(BUILD_DIR)/bbeos-apps-$(shell date +%Y%m%d).tar.gz $(ALL_APPS) + +# Install applications +install: $(ALL_APPS) + install -d $(DESTDIR)/usr/bin + install -m 755 $(ALL_APPS) $(DESTDIR)/usr/bin/ + +# Install ARM versions +install-arm: arm-all + install -d $(DESTDIR)/usr/bin + install -m 755 arm-* $(DESTDIR)/usr/bin/ + +# Uninstall +uninstall: + rm -f $(DESTDIR)/usr/bin/calculator + rm -f $(DESTDIR)/usr/bin/text-editor + rm -f $(DESTDIR)/usr/bin/file-manager + rm -f $(DESTDIR)/usr/bin/settings + rm -f $(DESTDIR)/usr/bin/system-info + rm -f $(DESTDIR)/usr/bin/network-tools + rm -f $(DESTDIR)/usr/bin/backup-tool + rm -f $(DESTDIR)/usr/bin/debugger + rm -f $(DESTDIR)/usr/bin/profiler + +# Clean +clean: + rm -f $(ALL_APPS) + rm -f arm-* + rm -f $(BUILD_DIR)/*.tar.gz + +# Test applications +test: $(ALL_APPS) + @echo "Testing BBeOS applications..." + @echo "Calculator test:" + @echo "2+2" | ./calculator || echo "Calculator test failed" + @echo "Text editor test:" + @echo "test" | ./text-editor || echo "Text editor test failed" + @echo "All tests completed" + +# Dependencies check +check-deps: + @echo "Checking dependencies..." + @which gcc > /dev/null || (echo "Error: gcc not found" && exit 1) + @which arm-linux-gnueabihf-gcc > /dev/null || (echo "Warning: ARM cross-compiler not found") + @echo "Dependencies check passed" + +# Help +help: + @echo "BBeOS Applications Makefile" + @echo "===========================" + @echo "" + @echo "Targets:" + @echo " all - Build all applications (default)" + @echo " calculator - Build calculator application" + @echo " text-editor - Build text editor application" + @echo " file-manager - Build file manager application" + @echo " settings - Build settings application" + @echo " system-info - Build system info utility" + @echo " network-tools - Build network tools utility" + @echo " backup-tool - Build backup tool utility" + @echo " debugger - Build debugger tool" + @echo " profiler - Build profiler tool" + @echo " arm-all - Build ARM cross-compiled versions" + @echo " package - Create application package" + @echo " install - Install applications to system" + @echo " install-arm - Install ARM versions" + @echo " uninstall - Remove installed applications" + @echo " clean - Remove build artifacts" + @echo " test - Run application tests" + @echo " check-deps - Check build dependencies" + @echo " help - Show this help" + @echo "" + @echo "Examples:" + @echo " make all # Build all applications" + @echo " make arm-all # Build ARM versions" + @echo " make install # Install to system" + @echo " make test # Run tests" + +.PHONY: all clean install uninstall test check-deps help arm-all package install-arm \ No newline at end of file diff --git a/boot-unpacked/boot.scr b/boot-unpacked/boot.scr new file mode 100644 index 0000000..8eb6b9e --- /dev/null +++ b/boot-unpacked/boot.scr @@ -0,0 +1,14 @@ +# BBeOS Boot Script +# For testing with QEMU or other bootloaders + +# Load kernel +fatload mmc 0:1 0x80200000 zImage + +# Load device tree +fatload mmc 0:1 0x82000000 dtb + +# Load initramfs +fatload mmc 0:1 0x83000000 initramfs.img + +# Boot kernel +bootz 0x80200000 0x83000000 0x82000000 diff --git a/boot-unpacked/dtb b/boot-unpacked/dtb new file mode 100644 index 0000000..db2db30 Binary files /dev/null and b/boot-unpacked/dtb differ diff --git a/community/website/index.html b/community/website/index.html new file mode 100644 index 0000000..30db271 --- /dev/null +++ b/community/website/index.html @@ -0,0 +1,595 @@ + + +
+ + +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.
+ +Boot on ARMv7 architecture with full hardware integration for the BlackBerry Classic Q20.
+Privacy-focused design with minimal attack surface and secure boot chain.
+GUI designed for trackpad navigation and physical QWERTY keyboard.
+Complete phone functionality including calling, SMS, Wi-Fi, and GPS.
+Community-driven development with transparent codebase and GPL v3 licensing.
+Built on Linux 6.x with Wayland display server and modern development tools.
+BBeOS is specifically designed for the iconic BlackBerry Classic Q20, leveraging its unique hardware capabilities.
+BBeOS is currently in active development. Join the community and contribute to bringing new life to the BlackBerry Classic.
+ +