Jump to content

Unihertz Titan Pocket (unihertz-titan-pocket)

From postmarketOS Wiki
Unihertz Titan Pocket
Unihertz Titan Pocket
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
Features
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