Jump to content

OnePlus Nord N100 (oneplus-billie2)

From postmarketOS Wiki
Revision as of 15:31, 25 February 2021 by Ichernev (talk | contribs)
OnePlus Nord N100
Stock Android 10 homescreen
Stock Android 10 homescreen
Manufacturer OnePlus
Name Nord N100
Codename oneplus-billie2
Released 2020
Hardware
Chipset Qualcomm SM4250 (460)
CPU 4x1.8GHz Kryo Gold + 4x1.8GHz Kryo Silver
GPU Adreno 610
Display 720 x 1600
Storage 64 GB
Memory 4 GB
Architecture aarch64
Software
Original software Android 10
postmarketOS
Category testing
Pre-built images no
Features
Flashing
Partial
USB Networking
Works
Internal storage
No data
SD card
No data
Battery
No data
Screen
No data
Touchscreen
No data
Multimedia
3D Acceleration
No data
Audio
No data
Camera
No data
Camera Flash
No data
Connectivity
WiFi
No data
Bluetooth
No data
GPS
No data
NFC
No data
Modem
Calls
No data
SMS
No data
Mobile data
No data
Miscellaneous
FDE
No data
USB OTG
No data
HDMI/DP
No data
Sensors
Accelerometer
No data
Magnetometer
No data
Ambient Light
No data
Proximity
No data
Hall Effect
No data
Haptics
No data
Barometer
No data


Contributors

  • ichernev

Maintainer(s)

  • ichernev

Users owning this device

  • BenTheTechGuy (Notes: Running OxygenOS 10.5.5; working on getting pmOS booting again)
  • Harryausten (Notes: daily driver, currently running stock OxygenOS)
  • Ichernev (Notes: Working on mainline kernel support)


How to enter flash mode

Via ADB

  • adb reboot fastboot
  • (a menu appears, that says 'fastbootd')
  • English -> Advanced -> Reboot to fastboot -> Reboot to fastboot (confirm)

Via "Advanced Reboot"

  • make sure Settings -> System -> Developer Tools -> Advanced Reboot is enabled
  • hold power+volup button (or just power if you enabled it) and choose Bootloader


Installation

  • Note that currently the device works to a debug-shell in initfs, so you can install boot.img, but not rootfs. Also you can just fastboot boot instead
  • This is an A/B device, so you leave your working slot and play on the other:
pmbootstrap chroot -- fastboot getvar current-slot  # should display a or b
pmbootstrap chroot -- fastboot set_active a         # or b, to change active slot 
  • After you ensure you have pmbootstrap up and running
pmbootstrap init                 # choose billie2, downstream kernel
pmbootstrap install
pmbootstrap initfs hook_add debug-shell
pmbootstrap flasher flash_vbmeta
pmbootstrap chroot -- fastboot erase dtbo
# and now you can either boot
pmbootstrap flasher boot
# OR flash boot.img
pmbootstrap flasher flash_kernel

Other notes

  • There is no TWRP for the device, but if you stick sony seine's twrp initfs with downstream kernel, it will boot. DO NOT USE PARTITION operations, because it will probably mess up your device good, but it might be handy.
  • Device has dynamic partitions (a few of the important partitions are crammed into one super partition). If we figure out the way these partitions are described then initfs can properly mount the system partition (right now we can flash it, but can't really mount it). I also hope that the dynamic partitions can be rw, not just ro, because that would cause further issues.
  • exiting from init displays a special (possibly bootloader?) screen on the phone with exist code, so it can be used for debugging hangs and other stuff
  • pmos_boot property is added to kernel cmd line to skip mount_subpartitions step in init, which hangs for whatever reason. After dynamic partitions are figured out this should be fixed to work properly
  • vibrator works
echo 1 > /sys/class/leds/vibrator/enable ; sleep 0.1 ; echo 0 > /sys/class/leds/vibrator/enable

See also