OnePlus 3T (oneplus-oneplus3t)
OnePlus 3T with Plasma Mobile UI | |
Manufacturer | OnePlus |
---|---|
Name | 3T |
Codename | oneplus-oneplus3t |
Released | 2016 |
Type | handset |
Hardware | |
Chipset | Qualcomm Snapdragon 821 (MSM8996Pro) |
CPU | 2x 2.35 GHz Kryo & 2x 1.6 GHz Kryo |
GPU | Adreno 530 |
Display | 1080x1920 AMOLED |
Storage | 64/128 GB |
Memory | 6 GB |
Architecture | aarch64 |
Software | |
Original software | Android |
Original version | 6.0 Marshmallow (OxygenOS 3.x) |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | yes |
Flashing |
Works |
---|---|
USB Networking |
Works |
Internal storage | |
SD card | |
Battery |
Works |
Screen |
Partial |
Touchscreen |
Works |
Multimedia | |
3D Acceleration |
Partial |
Audio |
Partial |
Camera | |
Camera Flash | |
Connectivity | |
WiFi |
Works |
Bluetooth |
Works |
GPS | |
NFC |
Works |
Modem | |
Calls | |
SMS | |
Mobile data | |
Miscellaneous | |
FDE | |
USB OTG |
Works |
HDMI/DP | |
Sensors | |
Accelerometer | |
Magnetometer | |
Ambient Light | |
Proximity | |
Hall Effect | |
Haptics | |
Barometer | |
This device is based on the Snapdragon 821. See the SoC page for common tips, guides and troubleshooting steps |
Contributors
- DrGit
- MartinL
Maintainer(s)
Users owning this device
- Akitlove (Notes: 64GB with Samsung s6e3fa5 display panel)
- Bczeman
- DALEK 77 (Notes: 128GB, Gunmetal, Samsung S6E3FA5 display panel)
- Drebrez
- DrGit (Notes: 128GB)
- Earboxer (Notes: broken OLED, no os, can't get into bootloader)
- Kirjoittamaton (Notes: Samsung S6E3FA3 display panel)
- MartinL (Notes: 128GB with Samsung s6e3fa5 display panel)
- Nobodywasishere (Notes: Have two of them)
- Sanzoghenzo (Notes: See the journal)
- SheatNoisette (Notes: 128GB)
- ThatGeekZen (Notes: A3000)
- TPJS (Notes: Good condition; stock; unknown screen type)
Good luck.
Unlocking the Bootloader
WARNING: Doing this will wipe ALL data on your device. Please backup all your personal data before continuing!
- Enable
Developer options
by tapping the build number 7 times inSettings
>About
- Go to
Developer options
and enable bothUSB Debugging
andOEM Unlocking
- Open a terminal window and type
adb devices
to verify your device is visible. - Type
adb reboot bootloader
to reboot your device into fastboot mode. - Type
fastboot devices
to verify once again that your device is visible. - Type
fastboot oem unlock
. To navigate the on screen options use Volume Up/Down and select an option with the Power button. - Congrats, your bootloader is now unlocked!
How to enter flash mode
- After the bootloader is unlocked press the Power button and you should see the warning screen. Press Volume Up/Down to open the boot options.
- Select
Fastboot
and press Power
You are now ready to flash.
Installation
$ pmbootstrap init
$ pmbootstrap install
$ pmbootstrap flasher flash_rootfs
$ pmbootstrap flasher flash_kernel
If the fastboot flash fails use the recovery mode:
NOTE: The original recovery fails to sideload the zip file, flash TWRP recovery first |
$ pmbootstrap install --android-recovery-zip
$ pmbootstrap flasher --method=adb sideload
Mainline
MSM8996 common mainline kernel fork
Feature | Components | Status | |
---|---|---|---|
USB | Onsemi FUSB301 (extcon)
PMI8996 SMBCharger (OTG supply) |
Y | SMBCharger OTG VBUS driver not upstream. |
UFS | SAMSUNG KLUDG8J1CB-B0B1 (128GB) | Y | |
Display | MDSS1,2
Samsung S6E3FA3 Samsung S6E3FA5 Samsung S6E3FA5R9S |
P | Panel does not resume from suspend, drivers not in mainline yet |
GPU | Adreno 5301 | Y | Somewhat glitchy, causes some artifacts and tearing in GNOME and GTK4 due to a possible mesa bug. Can be mitigated by disabling binning by setting FD_MESA_DEBUG=nobin .
|
WiFi | QCA6174a | Y | |
Bluetooth | Y | Tested and working using bluetoothctl | |
Modem | MSS1 | N | Calls and SMS untested. Mobile data requires WIP IPA 2.5 support in IPA driver and modemmanager. |
GNSS | N | requires PDS support in gpsd | |
NFC | NXP PN66T (PN548 C2 + SmartMX) | Y | NFC tags are detected, SmartMX secure element on SPI is not configured |
Audio Codec | WCD9335 (Headphones, earpiece, microphones)
NXP TFA9890 (Speaker) |
P | Headphone output works |
Video Codec | Venus1 | N | Untested |
Battery | TI BQ27541 3400mAh
PMI8996 SMBCharger/Fuel gauge2 SMB13512 |
P | Fuel gauge works. Charger can reach its maximum current at 5V. Faster charging (9V) will require extra handling in the PMI8996 SMBCharger driver, and for better efficiency (and possibly even faster charging) a new driver for SMB1351. |
Rear Camera | Sensor: Sony IMX298
Lens actuator: ROHM BU63165GWL |
N | Needs dts, untested, no mainline driver |
Front Camera | Sensor: Samsung S5K3P8SP | N | Needs dts, untested, no mainline driver |
Sensors | SLPI/SSC1,2
Gyroscope/Accelerometer: LSM6DS3 Magnetometer: MMC3416PJ Pressure Proximity + Light: APDS-9922 |
N | Work in progress SSC driver. |
Touchscreen | Synaptics S3320 | Y | |
Touchkeys | Synaptics S1302 | Y | Synaptics F1A driver not in mainline yet |
Fingerprint Reader | fpc1020 | N | Must confirm if SPI and/or GPIOs leading to it are accessible from the normal world. Work in progress fingerprint subsystem. Needs driver.
If SPI and GPIOs are secure, a driver for QSEECOM will be needed to load the vendor-provided trusted app, as well as something to communicate with it. |
Buttons | TLMM1,2/PM8996 GPIO2 (Volume Up, Volume Down)
PM8994 PON2 (Power) |
Y | |
Tri-state switch | TLMM1,2/PM8996 GPIO2 | Y | |
Haptics | PMI8996 Haptics2 | P | Driver not upstream yet, direct play mode support is missing |
LEDs | PMI8996 MPP2 (touchkeys backlights)
PMI8996 LPG/Flash2 (Status light, Flash) |
P | Status light and touchkeys backlights work. Flash will probably require a driver. |
1: Internal component
2: Driver of component
Known issues
- screen goes to suspend on power button press, resume does not work
- kernel oops on reboot https://gitlab.com/pmos-oneplus3t/linux/-/wikis/oneplus3t-mainline-reboot-oops-dmesg Workaround: https://gitlab.com/pmos-oneplus3t/linux/-/commit/13c0a5cf0feb296940c95753025222c022357cc4
- screen goes to suspend in about 30 seconds after tinydm phosh/weston) starts and never resumes. Fix: https://gitlab.com/msm8996-mainline/linux/-/merge_requests/12
See also
- pmaports!923 Initial merge request
- Device package
- Accessing UART