Compatibility Matrix — Note Air 1 vs Note Air 2
Side-by-side comparison of the two devices. This document establishes why a direct partition-level port is impossible and which components can be salvaged. Source: NA1 data from device exploration (Phase 01); NA2 data from firmware extraction (v4.0, build 49339).
Hardware Platform
| Property | Note Air 1 | Note Air 2 | Compatible? |
|---|---|---|---|
| SoC | SDM636 (Snapdragon 636) | SDM662 (Snapdragon 662) | ❌ Different SoC family |
| Platform codename | sdm660 | bengal | ❌ |
| CPU architecture | arm64-v8a | arm64-v8a | ✅ Same ISA |
| CPU cores | Kryo 260 (4×A73 + 4×A53) | Kryo 260 (4×A73 + 4×A53) | ✅ Same core types |
| GPU | Adreno 509 | Adreno 610 | ❌ Different GPU |
| Storage bus | eMMC | UFS | ❌ Different bus |
| Display | E-ink, onyx_epdc_fb driver | E-ink, likely similar driver | ⚠️ Kernel-specific |
| Touch | Wacom EMR (i2c) | Unknown (likely similar) | ❓ Unknown |
Software Stack
| Property | Note Air 1 | Note Air 2 | Compatible? |
|---|---|---|---|
| Android version | 10 (SDK 29) | 11 (SDK 30) | ❌ Different API level |
| Kernel version | 4.4.x | 4.19.157 | ❌ Different branches |
| VNDK | 29 | 30 | ❌ Different VNDK |
| Boot image header | v0 | v2 | ❌ Different format |
| Treble | Enabled | Enabled | ✅ |
| Partition scheme | Static, single-slot | Dynamic (super), A/B, virtual A/B | ❌ Fundamentally different |
| Encryption | FDE (full-disk) | FBE (file-based) | ❌ |
| Userdata FS | ext4 | f2fs | ❌ |
| hwcomposer | hwcomposer.sdm660.so | display composer service (bengal) | ❌ |
| gralloc | gralloc.sdm660.so | gralloc.bengal.so | ❌ |
Portability Assessment
| Component | Portable? | Notes |
|---|---|---|
| Onyx APKs (kreader2, knote2, etc.) | ✅ YES | Standard Android APKs, work on SDK 29+ |
| System framework | ⚠️ MAYBE | Via Treble/GSI, but VNDK 29/30 mismatch may block |
| Vendor partition | ❌ NO | Entirely different SoC HALs |
| Kernel / boot.img | ❌ NO | Different SoC, different kernel version |
| ABL / XBL | ❌ NO | Chip-specific bootloaders |
| fstab | ⚠️ PARTIAL | NA2 ships fstab.emmc variant; dynamic partitions incompatible |
Verdict
The original project assumption that both devices use SDM636 is incorrect. The Note Air 2 uses SDM662 (Bengal platform) — a completely different SoC. This rules out a direct firmware port at the partition level.
Viable approaches in priority order:
- APK extraction — Extract Onyx apps from NA2 system.img and sideload on NA1
- GSI approach — Flash Android 11 GSI on NA1 using NA1’s vendor, overlay NA2 apps
- Feature-level port — Cherry-pick specific NA2 improvements as APK updates on NA1