8.0 KiB
Phase 1: Research & Feasibility Analysis
🎯 Objectives
Establish technical feasibility and create a comprehensive hardware reference for the BlackBerry Classic (Q20) to determine if a custom Linux OS is viable.
📋 Detailed Tasks
1.1 Hardware Specification Collection
1.1.1 SoC Analysis - Qualcomm MSM8960
- Architecture: ARMv7 dual-core Krait 200/300
- Frequency: 1.5GHz (max)
- Manufacturing: 28nm LP process
- Memory Interface: LPDDR2-1066
- ISP: 20MP camera support
- Video: 1080p encode/decode
Research Tasks:
- Document all available GPIO pins and their functions
- Map memory regions and I/O addresses
- Identify power management features
- Document clock tree and PLL configurations
- Research thermal characteristics and throttling
1.1.2 GPU Analysis - Adreno 225
- Architecture: Unified shader model 4.1
- Memory: Shared with system RAM
- API Support: OpenGL ES 2.0, OpenVG 1.1
- Performance: ~24 GFLOPS
Research Tasks:
- Investigate open-source driver availability
- Document firmware requirements
- Map register space and memory regions
- Research reverse engineering efforts
- Identify alternative rendering paths (software, framebuffer)
1.1.3 Display System
- Panel: 3.5" IPS LCD, 720x720 resolution
- Interface: Likely MIPI DSI
- Touch: Capacitive overlay (if present)
- Aspect Ratio: 1:1 (square)
Research Tasks:
- Identify display controller chip
- Document MIPI DSI configuration
- Map backlight control
- Research touch controller (if separate)
- Document color calibration data
1.1.4 Input Devices
- Keyboard: Physical QWERTY with backlight
- Trackpad: Optical or capacitive
- Navigation: Menu, Back, Call, End keys
- Interface: Likely I2C or SPI
Research Tasks:
- Identify keyboard controller chip
- Document key matrix layout
- Map trackpad sensor type and interface
- Document LED backlight control
- Research haptic feedback system
1.1.5 Modem - Qualcomm MDM9615
- Technology: LTE Cat 3, HSPA+, CDMA
- Interface: QMI over USB or HSIC
- Firmware: Proprietary, requires signed images
Research Tasks:
- Document QMI interface specifications
- Research firmware extraction methods
- Identify AT command set support
- Document power management interface
- Research alternative modem solutions
1.2 Firmware Extraction and Analysis
1.2.1 BB10 Firmware Extraction
Tools Required:
- Sachesi (BB10 firmware extractor)
- BlackBerry Link (official software)
- Autoloader tools
- Hex editors and binary analysis tools
Extraction Process:
- Download latest BB10 firmware for Q20
- Use Sachesi to extract individual partitions
- Identify bootloader, kernel, and system partitions
- Extract device tree and kernel configuration
- Analyze proprietary drivers and firmware blobs
Analysis Tasks:
- Reverse engineer boot sequence
- Document partition layout
- Extract device tree source (DTS)
- Identify kernel configuration
- Map proprietary driver dependencies
1.2.2 Bootloader Analysis
Investigation Areas:
- Signature Verification: Level of cryptographic enforcement
- Fastboot Access: Availability of fastboot mode
- Recovery Mode: Alternative boot paths
- Unlock Possibility: Bootloader unlock methods
- Secure Boot: Chain of trust analysis
Research Methods:
- Attempt fastboot commands
- Analyze recovery partition
- Research JTAG/EDL access points
- Document signature verification process
- Identify potential bypass methods
1.3 Hardware Access Investigation
1.3.1 Debug Interfaces
Available Interfaces:
- USB: Standard USB 2.0 interface
- Serial: UART over USB (if available)
- JTAG: Hardware debug interface
- EDL: Emergency Download Mode
- QDL: Qualcomm Download Mode
Investigation Tasks:
- Test USB serial console access
- Identify JTAG pinout and access
- Research EDL mode entry
- Document QDL mode capabilities
- Test fastboot command availability
1.3.2 Development Environment
Required Tools:
- Cross-compilation toolchain (ARMv7)
- Device tree compiler
- Kernel build environment
- Root filesystem builder (Buildroot/Yocto)
- Flash tools and utilities
Setup Tasks:
- Install ARM cross-compiler
- Set up kernel build environment
- Configure device tree tools
- Install flash utilities
- Set up development VM/container
1.4 Driver Analysis
1.4.1 Open Source Driver Availability
Kernel Drivers to Investigate:
- MSM DRM: Display and graphics
- MSM Audio: Sound system
- MSM Camera: Camera interface
- MSM USB: USB controller
- MSM I2C/SPI: Communication buses
- MSM GPIO: General purpose I/O
Research Tasks:
- Check mainline kernel support
- Research postmarketOS MSM8960 support
- Investigate LineageOS driver availability
- Document missing driver requirements
- Identify reverse engineering needs
1.4.2 Proprietary Driver Requirements
Likely Proprietary Components:
- Modem Firmware: MDM9615 baseband
- GPU Firmware: Adreno 225 microcode
- Audio DSP: Qualcomm audio processing
- Camera ISP: Image signal processor
- Security Modules: TrustZone components
Analysis Tasks:
- Extract and analyze firmware blobs
- Document driver interfaces
- Research open alternatives
- Identify compatibility layers needed
- Document licensing restrictions
📊 Deliverables
1.5 Hardware Reference Sheet
Documentation Requirements:
- Complete hardware block diagram
- Pin assignments and functions
- Memory map and I/O addresses
- Clock configurations
- Power management states
- Interface specifications
1.6 Bootloader Analysis Report
Content Requirements:
- Boot sequence documentation
- Signature verification details
- Available boot modes
- Unlock possibilities
- Security assessment
- Alternative boot methods
1.7 Driver Requirements Matrix
Matrix Categories:
- Available: Open source drivers ready
- Portable: Drivers from similar hardware
- Missing: No driver available
- Proprietary: Requires binary blobs
- Priority: Critical for basic functionality
1.8 Go/No-Go Decision Criteria
Technical Criteria:
- Bootloader unlock possibility > 70%
- Critical hardware support > 80%
- Development toolchain availability
- Community interest and resources
- Legal/ethical considerations
Risk Assessment:
- High Risk: Bootloader completely locked
- Medium Risk: Limited hardware support
- Low Risk: Most components supported
🔍 Research Resources
1.9 Information Sources
- Official Documentation: BlackBerry developer resources
- Community Forums: CrackBerry, XDA Developers
- Reverse Engineering: GitHub projects, research papers
- Hardware Datasheets: Qualcomm, display manufacturers
- Kernel Sources: Linux mainline, vendor trees
1.10 Tools and Software
- Firmware Analysis: binwalk, hexdump, strings
- Hardware Debug: OpenOCD, JTAG tools
- Binary Analysis: IDA Pro, Ghidra, radare2
- Development: QEMU, cross-compilers
- Documentation: Doxygen, Sphinx
⏱️ Timeline
Week 1-2: Hardware specification collection Week 3-4: Firmware extraction and analysis Week 5-6: Bootloader investigation Week 7-8: Driver analysis and feasibility assessment
Total Duration: 8 weeks (2 months)
🎯 Success Criteria
Phase 1 is successful when:
- Complete hardware reference is documented
- Bootloader capabilities are fully understood
- Driver requirements are clearly identified
- Technical feasibility is determined
- Go/No-Go decision can be made with confidence
🚨 Risk Mitigation
High-Risk Scenarios:
- Bootloader completely locked → Research alternative boot methods
- Critical hardware unsupported → Identify workarounds or alternatives
- Legal restrictions → Consult with legal experts
- Resource limitations → Scale back scope or seek community help