Device Hub — Note Air 2
Canonical hardware reference for the Onyx Boox Note Air 2. Data sourced from v4.0 firmware extraction (build 49339). This device is the source of the port — its apps and system image are what we are bringing to the Note Air 1.
Hardware Identity
| Field | Value |
|---|---|
| Marketing name | Onyx Boox Note Air 2 |
| Model (ro.product) | NoteAir2 |
| SoC | Qualcomm SDM662 (Snapdragon 662) — “bengal” platform |
| CPU | Kryo 260 (4×A73 + 4×A53), arm64-v8a |
| GPU | Adreno 610 |
| Storage | UFS (not eMMC) |
| Android version | 11 (SDK 30) |
| Kernel | 4.19.157-perf (clang 10.0.7, built 2025-02-10) |
| VNDK | 30 |
| Boot image header | v2, page size 4096, gzip kernel + gzip ramdisk |
| Treble | Enabled (separate system/vendor/product/system_ext) |
| A/B slots | Yes (ro.build.ab_update=true) |
| Dynamic partitions | Yes (super partition) |
| Virtual A/B | Yes (ro.virtual_ab.enabled=true) |
| Userdata FS | f2fs |
| Encryption | FBE (aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized+wrappedkey_v0) |
| Security patch | 2024-02-01 |
Firmware Structure
OTA format: encrypted .upx → decrypt with decryptBooxUpdateUpx → .zip → extract payload.bin → dump with payload-dumper-go.
Available Firmware Versions
| Version | Build | Size | Type | MD5 |
|---|---|---|---|---|
| v4.0 | 49339 | 1.84 GB | Full | 9bcffd5069a01c2f90b90a778e27b376 |
| v4.0.2 | 49807 | 50 MB | Incremental (from v4.0) | 91a889a37f5f5e92cde9770d3220feb1 |
| v4.1.1 | 50793 | 338 MB | Incremental (from v4.0.2) | 04e3c7d528a572cbb49455eb84afa585 |
Extracted Partition Images (v4.0)
| Partition | Size | Type | Notes |
|---|---|---|---|
| system.img | 2.1 GB | ext4 | AOSP + Onyx apps |
| product.img | 564 MB | ext4 | Google apps (GMS) |
| vendor.img | 489 MB | ext4 | Qualcomm bengal HALs |
| system_ext.img | 293 MB | ext4 | Qualcomm + SystemUI + Settings |
| boot.img | 96 MB | bootimg v2 | Kernel 4.19.157 + ramdisk |
| recovery.img | 96 MB | bootimg v2 | Stock recovery |
| modem.img | 39 MB | raw | Baseband firmware |
| xbl.img | 3.1 MB | ELF | Extensible bootloader (Bengal-specific) |
| abl.img | 148 KB | ELF 32-bit ARM | Android bootloader |
Onyx Apps (portability targets)
Apps in system/app: OnyxLatinIME, Clock, Gallery, Kime, Music, NeoBrowser, VoiceRecorder, ai-assistant, app-market, calculator, dict, floatingbutton, igetshop, kmail, knote2, kreader2, ksync, tscalibration, EasyTransfer, ProductionTest.
Apps in system/priv-app: OnyxOtaService, kcb.
These APKs target SDK 29+ and are the primary portability candidates for the APK-extraction approach.
Porting Verdict
Direct partition-level port is NOT viable. NA2 uses SDM662 (bengal), NA1 uses SDM636 (sdm660) — different SoC families with incompatible kernels, vendor HALs, bootloaders, and partition schemes.
Viable approaches: (1) APK extraction — sideload NA2 Onyx apps on NA1; (2) GSI approach — Android 11 GSI on NA1 + NA2 apps; (3) Feature-level port — cherry-pick specific app updates. See Compatibility Matrix entry for full analysis.