Unihertz Titan Pocket (unihertz-titan-pocket)
| This device has been tested with postmarketOS, but its device package has not yet been added to the postmarketOS repositories. This means that it cannot be selected in pmbootstrap. |
|
Unihertz Titan Pocket | |
| Manufacturer | Unihertz |
|---|---|
| Name | Titan Pocket |
| Codename | unihertz-titan-pocket |
| Released | 2021 |
| Type | keyboard handset |
| Hardware | |
| Chipset | MediaTek Helio P70 (MT6771V/CT) |
| CPU |
4x Cortex A73 @ 2.11GHz 4x Cortex A53 @ 1.99GHz |
| GPU | Mali-G72 MP3 |
| Display | 720x720 |
| Storage | 111.32 GiB |
| Memory | 6 GB |
| Architecture | aarch64 |
| Software | |
Original software The software and version the device was shipped with. |
Android 11 |
Extended version The most recent supported version from the manufacturer. |
Android |
| postmarketOS | |
| Category | downstream |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
no |
pmOS kernel The kernel version that runs on the device's port. |
4.14.186 |
Unixbench score Unixbench Whetstone/Dhrystone score. See Unixbench. |
0.0 |
Flashing Whether it is possible to flash the device with pmbootstrap flasher. |
Partial
|
|---|---|
USB Networking After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system). |
Works
|
Battery Whether charging and battery level reporting work. |
Untested
|
Screen Whether the display works; ideally with sleep mode and brightness control. |
Works
|
Touchscreen |
Works
|
Keyboard Whether the built-in physical keyboard works. |
Works
|
| Multimedia | |
3D Acceleration |
Untested
|
Audio Audio playback, microphone, headset and buttons. |
Untested
|
Camera |
Untested
|
Camera Flash |
Untested
|
IR TX |
Untested
|
IR RX |
Untested
|
| Connectivity | |
WiFi |
Works
|
Bluetooth |
Untested
|
GPS |
Untested
|
NFC Near Field Communication |
Untested
|
| Modem | |
Calls |
Untested
|
SMS |
Untested
|
Mobile data |
Untested
|
| Miscellaneous | |
FDE Full disk encryption and unlocking with unl0kr. |
Untested
|
USB OTG USB On-The-Go or USB-C Role switching. |
Untested
|
HDMI/DP Video and audio output with HDMI or DisplayPort. |
Untested
|
| Sensors | |
Accelerometer Handles automatic screen rotation in many interfaces. |
Untested
|
Magnetometer Sensor to measure the Earth's magnetism |
Untested
|
Ambient Light Measures the light level; used for automatic screen dimming in many interfaces. |
Untested
|
Proximity |
Untested
|
Hall Effect Measures magnetic fields; usually used as a flip cover sensor |
Untested
|
Haptics |
Untested
|
Barometer Sensor to measure air pressure |
Untested
|
Power Sensor Sensor to monitor current, voltage and power. Not fuel gauge! |
Untested
|
Contributors
- aa13q
- some00
Users owning this device
How to enter flash mode
Both Fastboot and SP Flash Tool v5 have been tested.
Fastboot
No key combination for entering Fastboot mode is currently known. From Android, run adb reboot fastboot. From a working postmarketOS installation, use the reboot-mode package.
SP Flash Tool v5
Make sure the device is completely powered off. If it is stuck in a boot loop, disconnect the battery first. Once you have set up the image to be flashed, click Download, then connect the USB cable to the device. The battery must be connected while flashing the device.
Bootloader unlocking
Enable OEM unlocking in Developer settings, then enter Fastboot and run fastboot flashing unlock.
UART logging
UART is available on the USB Type-C port. TX is SBU1 (A8). RX has not been found yet; it is possibly disabled by eFuse. The logic level is 1.8V.
The tested components below were sourced from eBay.
- FT232RL 3.3V 5.5V FTDI USB to TTL Serial Adapter Module
- AMS1117 1.2~5V DC Jack Step down Buck Voltage Convertor Power Supply Module: used to supply 1.8V to the FT232RL VCCIO pin. Choose the 1.8V version.
- 3.1 Type-C Male to Female Test Board Test Connector with Board PCB: used to access the SBU1 pin.
Installation
Use pmbootstrap to build your own installation image.
$ pmbootstrap init
$ pmbootstrap install
$ pmbootstrap export
// The AVB footer needs to be added to the image manually at the time of writing.
// Without a correct footer, LK doesn't boot the image.
$ avbtool add_hash_footer \
--partition_name boot \
--partition_size 33554432 \
--image boot.img
Then proceed to flash using SP Flash Tool v5 or Fastboot. The original OTA containing the scatter file can be found on Google Drive.
Wi-Fi
openmttools is needed to initialize the MT6771 chip. some00's fork is linked because some changes were required and upstream no longer seems to accept MRs. There is currently no package to install; the binaries have to be built from source and copied to the device.
$ pmbootstrap chroot -b aarch64 --add make,gcc,git
$ git clone https://gitlab.com/some00/openmttools
$ cd openmttools
$ make
The output binaries are in the bin folder. Copy them (mtinit, mtdaemon) and the OpenRC service (mtk-connectivity) onto the device, then use the following commands to install them.
# cp mtk-connectivity /etc/init.d/mtk-connectivity
# chmod +x /etc/init.d/mtk-connectivity
# cp mtinit mtdaemon /usr/bin/
# chmod +x /usr/bin/mtinit /usr/bin/mtdaemon
# rc-service mtk-connectivity start
// optionally enable the service
# rc-update add mtk-connectivity default
Keyboard
The keyboard is usable by default, but special characters are not available. For "sticky" modifier keys and overlay key combinations, the Unihertz Titan Pocket Keyboard Mapping Daemon can be installed. Again, there is no package at the time of writing; it needs to be installed from source.
$ pmbootstrap chroot -b aarch64 --add git,rust,cargo
$ git clone https://gitlab.com/some00/unihertz_titan_pocket_kbd_mapping
$ cd unihertz_titan_pocket_kbd_mapping
$ cargo build --release
Copy the binary (target/release/unihertz-titan-pocket-kbd-mapping) and the service file (etc/kbd_mapping) to the target.
# cp unihertz-titan-pocket-kbd-mapping /usr/bin/
# cp kbd_mapping /etc/init.d/kbd_mapping
# chmod +x /etc/init.d/kbd_mapping /usr/bin/unihertz-titan-pocket-kbd-mapping
# rc-service kbd_mapping start
// optionally enable the service
# rc-update add kbd_mapping default
For further info, have a look at the repository's README and data/key_combos.csv.
External links
- Ubuntu Touch device tree for Unihertz Titan Pocket and Titan Slim
- gargoyle GSI: LineageOS 20 for Unihertz Titan, Pocket and Slim
- A collection of tools and guides to help make the Titan Pocket more usable (and to get it rooted)
- pmaports!8967 Initial merge request
- pmaports!8965 Force partition scan