OnePlus 3T (oneplus-oneplus3t): Difference between revisions
No edit summary |
|||
(23 intermediate revisions by 9 users not shown) | |||
Line 8: | Line 8: | ||
| imagecaption = OnePlus 3T with Plasma Mobile UI | | imagecaption = OnePlus 3T with Plasma Mobile UI | ||
| releaseyear = 2016 | | releaseyear = 2016 | ||
| originalsoftware = | | originalsoftware = Android | ||
| chipset = Qualcomm | | originalversion = 6.0 Marshmallow (OxygenOS 3.x) | ||
| chipset = Qualcomm Snapdragon 821 (MSM8996Pro) | |||
| cpu = 2x 2.35 GHz Kryo & 2x 1.6 GHz Kryo | | cpu = 2x 2.35 GHz Kryo & 2x 1.6 GHz Kryo | ||
| gpu = Adreno 530 | | gpu = Adreno 530 | ||
Line 16: | Line 17: | ||
| memory = 6 GB | | memory = 6 GB | ||
| architecture = aarch64 | | architecture = aarch64 | ||
| type = handset | |||
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --> | <!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --> | ||
| status_usbnet = Y <!-- USB networking does work? then put Y here and delete this comment --> | | status_usbnet = Y <!-- USB networking does work? then put Y here and delete this comment --> | ||
| status_flashing = Y <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --> | | status_flashing = Y <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --> | ||
| status_touch = Y <!-- Touch screen is working? You can also answer these questions with P for partially. --> | | status_touch = Y <!-- Touch screen is working? You can also answer these questions with P for partially. --> | ||
| status_screen = | | status_screen = P <!-- The display is working? --> | ||
| status_wifi = Y <!-- Wireless network works? --> | | status_wifi = Y <!-- Wireless network works? --> | ||
| status_xwayland = Y <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --> | | status_xwayland = Y <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --> | ||
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --> | | status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --> | ||
| status_battery = Y <!-- Charging the battery with charging-sdl is possible --> | | status_battery = Y <!-- Charging the battery with charging-sdl is possible --> | ||
| status_3d = P <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --> | | status_3d = P <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --> | ||
| status_accel = <!-- The sensor that measures proper acceleration works --> | | status_accel = <!-- The sensor that measures proper acceleration works --> | ||
| status_audio = P <!-- Using the device's speakers/headphone jack works --> | | status_audio = P <!-- Using the device's speakers/headphone jack works --> | ||
| status_bluetooth = | | status_bluetooth = Y <!-- It's possible to pair and use other devices via the bluetooth protocol --> | ||
| status_camera = <!-- Taking photos and videos works. --> | | status_camera = <!-- Taking photos and videos works. --> | ||
| status_gps = <!-- The Global Positioning System sensor works. --> | | status_gps = <!-- The Global Positioning System sensor works. --> | ||
Line 37: | Line 38: | ||
| status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" --> | | status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" --> | ||
| booting = yes <!-- The device is booting at all, can be yes/no *IMPORTANT* --> | | booting = yes <!-- The device is booting at all, can be yes/no *IMPORTANT* --> | ||
| packaged = yes | |||
| category = testing | |||
| status_otg = Y | | status_otg = Y | ||
| status_nfc = Y | |||
<!-- you can also use these lines if you need to: | <!-- you can also use these lines if you need to: | ||
Line 85: | Line 89: | ||
== Installation == | == Installation == | ||
The device have buggy fastboot interface, use the recovery mode instead: | |||
< | {{note|'''NOTE''': The original recovery fails to sideload the zip file, [https://twrp.me/oneplus/oneplusthree.html#fastboot flash TWRP recovery] first}} | ||
<syntaxhighlight lang="shell-session"> | |||
$ pmbootstrap install --android-recovery-zip --recovery-install-partition userdata | |||
$ pmbootstrap flasher --method=adb sideload | |||
</syntaxhighlight> | |||
== Mainline == | == Mainline == | ||
Line 115: | Line 124: | ||
Samsung S6E3FA5R9S | Samsung S6E3FA5R9S | ||
| | | P | ||
| | | Panel does not resume from suspend, drivers not in mainline yet | ||
|- | |- | ||
|GPU | |GPU | ||
Line 129: | Line 138: | ||
|- | |- | ||
|Bluetooth | |Bluetooth | ||
| | | Y | ||
| | | Tested and working using bluetoothctl | ||
|- | |- | ||
|Modem | |Modem | ||
Line 142: | Line 151: | ||
|- | |- | ||
|NFC | |NFC | ||
| NXP PN66T (PN548 C2 + SmartMX | | NXP PN66T (PN548 C2 + SmartMX) | ||
| Y | | Y | ||
| | | NFC tags are detected, SmartMX secure element on SPI is not configured | ||
|- | |- | ||
|Audio Codec | |Audio Codec | ||
Line 194: | Line 203: | ||
|Touchkeys | |Touchkeys | ||
| Synaptics S1302 | | Synaptics S1302 | ||
| | | Y | ||
| | | Synaptics F1A driver not in mainline yet | ||
|- | |- | ||
|Fingerprint Reader | |Fingerprint Reader | ||
Line 221: | Line 230: | ||
|- | |- | ||
|LEDs | |LEDs | ||
| PMI8996 MPP<sup>2</sup> ( | | PMI8996 MPP<sup>2</sup> (touchkeys backlights) | ||
PMI8996 LPG/Flash<sup>2</sup> (Status light, Flash) | PMI8996 LPG/Flash<sup>2</sup> (Status light, Flash) | ||
| | | P | ||
| | | Status light and touchkeys backlights work. Flash will probably require a driver. | ||
|- | |- | ||
|} | |} | ||
Line 232: | Line 241: | ||
== Known issues == | == Known issues == | ||
* kernel oops on reboot https://gitlab.com/pmos-oneplus3t/linux/-/wikis/oneplus3t-mainline-reboot-oops-dmesg | * 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 | * 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 == | == See also == | ||
* {{MR|923|pmaports}} Initial merge request | * {{MR|923|pmaports}} Initial merge request | ||
* [[OnePlus_3_(oneplus-oneplus3)#UART|Accessing UART]] | * [[OnePlus_3_(oneplus-oneplus3)#UART|Accessing UART]] |
Latest revision as of 12:46, 16 August 2025
![]() 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 6.0 Marshmallow (OxygenOS 3.x) |
Extended version |
Android |
postmarketOS | |
Category | testing |
Mainline |
yes |
Device package |
![]() |
Kernel package |
![]() |
Flashing |
Works
|
---|---|
USB Networking |
Works
|
Battery |
Works
|
Screen |
Partial
|
Touchscreen |
Works
|
Multimedia | |
3D Acceleration |
Partial
|
Audio |
Partial
|
Camera |
Untested
|
Connectivity | |
WiFi |
Works
|
Bluetooth |
Works
|
GPS |
Untested
|
NFC |
Works
|
Modem | |
Calls |
Untested
|
SMS |
Untested
|
Mobile data |
Untested
|
Miscellaneous | |
FDE |
Untested
|
USB OTG |
Works
|
Sensors | |
Accelerometer |
Untested
|
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)
- Ariebombarie (Notes: Ubuntu Touch (unsupported and doesn't boot))
- 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. Free if you can pick up or ship.)
- 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)
- Werti (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 and select an option with the button. - Congrats, your bootloader is now unlocked!
How to enter flash mode
- After the bootloader is unlocked press the button and you should see the warning screen. Press to open the boot options.
- Select
Fastboot
and press
You are now ready to flash.
Installation
The device have buggy fastboot interface, use the recovery mode instead:
NOTE: The original recovery fails to sideload the zip file, flash TWRP recovery first |
$ pmbootstrap install --android-recovery-zip --recovery-install-partition userdata
$ 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
- Accessing UART