Skip to content

About

LineageOS device tree for the Nothing Phone (4a) (frogger, A069)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nothing Phone (4a) — frogger

LineageOS 23.2 device tree for the Nothing Phone (4a) (A069, codename frogger, Qualcomm SM7635-AC / Snapdragon 7s Gen 4, platform volcano).

Adapted from the Nothing Phone (3a) (asteroids) tree. The two phones share the platform, the partition layout, fstab.default and config.fs (byte-identical), so most of the tree is common; everything that differs is listed below.

Firmware baseline: Frogger_B4.1-260309-1830 (Nothing OS 4.1, Android 16) — the same build proprietary-files.txt was extracted from, so images, module lists and fingerprints all match. See Upgrading to Nothing OS 5.0 for the A17 step.

Build

git clone https://github.com/<you>/android_device_nothing_frogger device/nothing/frogger
cd device/nothing/frogger && ./extract-files.py     # populate vendor/nothing/frogger

. build/envsetup.sh
breakfast frogger
brunch frogger
piece source
kernel NothingOSS/android_kernel_msm-6.1_nothing_sm7635, branch sm7635/b/mr_Frogger — the only branch with vendor/Frogger.config and arch/arm64/boot/dts/vendor/qcom-frogger
modules kernel/nothing/sm7635-modules, referenced by TARGET_KERNEL_EXT_MODULE_ROOT
blobs vendor/nothing/frogger, generated by extract-files.py from a stock dump

TARGET_KERNEL_CONFIG is gki_defconfig + vendor/pineapple_GKI.config + vendor/Frogger.config. The last one matters: it sets CONFIG_NOTHING_IS_FROGGER and the frogger LED / NFC-SE / OEM-info drivers. The 3a tree uses vendor/asteroids_perf.config instead, so this line has to stay device-specific.

PRODUCT_SHIPPING_API_LEVEL is 36 (Android 16, the level the 4a launched with).

What is 4a-specific (vs the 3a tree)

  • dtb/sm7635.dtb (13 concatenated FDTs) + dtbo.img — prebuilt from stock; the 3a tree builds DTBs from source instead
  • configs/display_id_4630947039571902850.xml, ...851.xml, ...4630947107087237506.xml (3a ships a single display_id file)
  • init/init.frogger.{rc,hw.rc,nfc.sh} + init/ueventd.frogger.rc: no Base/Pro PBID split (4a and 4a Pro are separate codenames), plus the sltntc thermal service, touchpanel TP_charger_flags and the OTG enable node
  • vintf/manifest_frogger.xml (target-level="8")
  • qcril-database/config/0016.1_config.sql (3a: 0015.1)
  • audio/audio_effects.xml, audio/lvacfs_{1,2}mic_config.patch and the extra lib* audio packages
  • configs/power/powerhint.json + android.hardware.power-service.lineage-libperfmgr (3a uses the QTI power HAL)
  • DeviceExtras (OTG tile/switch), nothing-fwk, sku/build_{EEA,IND,JPN,TUR}.prop, odm.prop / product.prop / system_ext.prop / vendor.prop
  • source vibrator/ HAL (android.hardware.vibrator.service.frogger, AAC RichTap) instead of the QTI effect library
  • kernel module lists (modules.load.*, modules.blocklist) from the 4a firmware — they differ heavily from the 3a set (nothing_*, *-cliffs, st21nfc, hapticdrv)

Status

Verified (static checking — the tree has not been built or booted yet):

  • codename/product/model/sku all frogger; no asteroids/A059 leftovers outside the stock odm.prop feature keys
  • every $(LOCAL_PATH) source and every Android.bp src referenced exists
  • no dangling makefile continuations; no CRLF in the module lists (CR would otherwise end up inside module names passed to init)
  • all frogger service binaries have sepolicy file_contexts labels
  • dtb parses as 13 FDTs, dtbo.img header magic valid
  • SELinux is enforcing — the androidboot.selinux=permissive debug flag was removed; early avc denials belong in sepolicy/, not back in BOARD_BOOTCONFIG
  • fingerprints (lineage_frogger.mk, sku/*.prop) are consistent with BuildDesc and with the blob list

Known gaps:

  • odm.prop still ships the stock ro.vendor.nothing.feature.diff.{device,plus}.Asteroids=… keys — they come from the 4a firmware and may legitimately be shared on sm7635
  • android-info.txt (version-bootloader, version-baseband) and the security patch levels are from the B4.1 build; bump them when you move to a newer stock build
  • no per-device README for build bot integration yet — add your README.md badges / lineage_build_target as your infra needs

Upgrading to Nothing OS 5.0 (Android 17, Frogger-C5.0-261023-2145)

  1. Extract blobs from the A17 images (vendor, odm, product, system_ext, vendor_dlkm, system_dlkm) — from Frogger_C5.0-261023-2145-image-logical.7z.001-003, or from a fresh dump — and regenerate proprietary-files.txt.
  2. dtb/sm7635.dtb and dtbo.img: take A17's dtbo.img and carve the DTB set out of vendor_boot.img (13 consecutive FDTs starting at the vendor-ramdisk offset).
  3. modules.load.vendor_boot, modules.load.recovery, modules.blocklist: copy lib/modules/modules.load, modules.load.recovery and modules.blocklist out of the A17 vendor_boot ramdisk (legacy-LZ4 + cpio).
  4. modules.load.vendor_dlkm, modules.load.system_dlkm, system_dlkm.modules.blocklist: from the A17 vendor_dlkm / system_dlkm images.
  5. Fingerprints → Nothing/Frogger/Frogger:17/CQ2A.260522.002-CP2A.260605.016/2610232145:user/release-keys (and the EEA/IND/JPN/TUR variants) in lineage_frogger.mk and all four sku/*.prop, with BuildDesc="qssi_64-user 17 CQ2A.260522.002-CP2A.260605.016 2610232145 release-keys".
  6. Bump the security patch levels and android-info.txt from the A17 build.

Do all of it in one go — a mixed tree (A17 dtb/dtbo with B4.1 blobs) is what breaks display/touch and HAL bring-up.

Firmware

https://nothingarchive.tech/docs/firmware (Phone (4a) → Frogger). Releases: https://github.com/spike0en/nothing_archive/releases.

build notes
Frogger_B4.1-260309-1830 what this tree ships with
Frogger-C5.0-261023-2145 Nothing OS 5.0 / Android 17, see upgrade section

The system dump at https://dumps.tadiphone.dev/dumps/nothing/frogger only has the B4.1 branch, which matches this tree's blob list exactly.

Credits

Device tree structure and the shared platform bits come from the Nothing Phone (3a) (asteroids) LineageOS trees; the frogger-specific work builds on FroggerSpace/android_device_nothing_frogger. Firmware images belong to Nothing Technology Limited. Everything is SPDX-License-Identifier: Apache-2.0 as marked in the individual files.

About

LineageOS device tree for the Nothing Phone (4a) (frogger, A069)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages