Unihertz Titan smartphone information

ValdikSS15th June 2020 at 12:56am

Titan is a bulky but cool rugged smartphone with hardware QWERTY keyboard with embedded touchpad, by Chinese manufacturer Unihertz.

  • Release Date: December 2019
  • Dimensions: 153.6×92.5×16.65 mm
  • Weight: 303 g
  • IP67 dust and water resistance (not water proof!)
  • Hardware QWERTY keyboard with built-in touchpad, with backlight. Languages supported by stock Kika Keyboard software: English, German, French, Italian, Portuguese, Spanish, Dutch, Russian, Japanese, Chinese.
  • OS: Android 9.0
  • Screen Size: 4.6"
  • Screen Resolution: 1430×1438
  • Chipset: Mediatek Helio P60 (MT6771), 4x 2 GHz ARM Cortex-A73, 4x 2 GHz ARM Cortex-53
  • GPU: Mali-G72 MP3, 700 MHz
  • RAM: 6 GB (LPDDR4X 1866 MHz)
  • ROM: 128 GB (eMMC 5.1)
  • Battery: 6000 mAh, Li-Po (supports 9V 2A and 12V 1.5A fast charge with bundled wall charger, Mediatek Pump Express/PE+)
  • Wireless Charging
  • NFC
  • Wi-Fi: a, b, g, n, n 5GHz, ac, Dual band, Wi-Fi Direct
  • Bluetooth: 4.2
  • GNSS: GPS, A-GPS, GLONASS
  • USB: 2.0, USB Type-C
  • USB OTG
  • Camera: 16MP AF rear (OV16880 sensor), 8MP FF front (IMX219 sensor)
  • Video camera: 1440×1440 / 1920×1080, 30 FPS
  • SIM Slot: Dual SIM Dual standby
  • MicroSD Slot: yes, combined with SIM slot (you can insert either 2 SIM or 1 SIM + MicroSD)
  • Sensors: Fingerprint (front-mounted), G-Sensor, Compass, Gyroscope, Proximity, Ambient Light Sensor
  • 3.5mm Audio Jack
  • FM Radio with recording function

Supported Radio Bands:

  • GSM: B2/3/5/8
  • WCDMA: B1/2/4/5/6/8/19
  • TDSCDMA: B34/39
  • FDD/TDD LTE: B1/2/3/4/5/7/8/12/13/17/18/19/20/25/26/28A/28B/34/38/39/40/41/66
  • CDMA 2000: BC0, BC1

Miscellaneous technical details:

  • Treble-enabled
  • Partition type: A-only
  • Widevine CDM L3 (software-only)
  • Built-in integrated call recorder with automatic recording functionality
  • The phone seems to be developed and manufactured by A-Gold ODM company

Unihertz Titan pros and cons

ValdikSS14th August 2020 at 9:56pm

This device is pretty good overall. I switched from Blackberry Q10 and now use it as my main phone. It's not as polished, but we're getting there thanks for manufacturer firmware updates. I enjoy it and recommend to hardware keyboard fans.

Pros

  • Build quality of the device is not top notch, but still of a high standard
  • The keyboard is also a touch panel (as on Blackberry Passport/Key1/Key2), you can scroll in any direction without touching the display. It also helps comfortably holding the device despite its size. When you type, the sensors temporary disables to not interfere with typing.
  • Ear speaker audio quality is surprisingly good, media speaker is loud and good quality as well
  • Unihertz fixes issues, updates firmware and software regularly
  • Built-in integrated call recorder with automatic recording functionality
  • Easy to obtain root privileges, easy to reflash

Cons

  • Mono media speaker. There's only a single speaker, despite two speaker cutouts on the back, one is just a dummy.
  • Fingerprint scanner is not reliable. Even with two fingers added twice (as 4 fingers), there's a big chance it won't unlock at the first try.
  • Camera is mediocre. Not that bad, but don't expect good quality under insufficient light conditions.
  • No physical keyboard gestures support, low keyboard integration with Kika Keyboard software (can't change the layout with a hotkey, need to press on-screen button)
  • Very small number of physical keyboard supported languages on stock Kika Keyboard
  • No kernel source code provided as for August 2020

Bugs

As of August 14, 2020 firmware:

  • Russian layout (and possibly other) of hardware keyboard in Kika Keyboard is barely usable. Russian has 33 letters, which requires assigning some keys with two letters on a 26 button physical keyboard. Titan uses non-standard layout as in Blackberry Passport, with a major caveat: to type alternative letter, instead of just pressing the button twice, you have to press and hold the key, wait until alternative letter appears on screen, then press it on screen. Fortunately there is (better) third-party software with hardware keyboard support available.
  • Kika keyboard incorrectly handles SHIFT+key and ALT+key, making the next key capitalized/alted as well. If you want to type "hEllo" by pressing h, shift+e, l, l, o, you'll get "hELlo".
  • Unihertz implemented different physical keyboard logic dependent on on-screen keyboard visibility. If you disable on-screen keyboard in physical keyboard Android options, the sensor won't be disabled temporary while you type, and if you assign long-press keyboard shortcut, you won't be able to type assigned key letter on the home screen launcher anymore. Don't disable software keyboard in the settings.
  • It's possible to delete some system applications without being able to reinstall it in any way other than factory reset or by deleting a special file with root privileges. Even creating another phone user won't make it reappear. One example of such application is calculator, which is a modified version of a standard Android calculator to support physical keyboards (so it's an important app you won't want to delete).
  • When Night Light mode is enabled, switching from screen to screen occurs with a strange yellow-to-white transition effect.
  • High CPU load while the device is idle (screen off), which leads to excessive battery consumption. See Idle CPU load fix. Fixed in 07.08.2020 firmware.
  • Additional 6-8% CPU load by SurfaceFlinger/SystemUI while the device is idle due to incorrect surface allocation by SystemUI and the necessity to send vsync packets every 16 ms to it.
  • Fingerprint data is stored without encryption and is not handled in TrustZone, violating Android fingerprint hardware security requirements. Check /data/vendor_de/0/fpdata/ to see your fingers.

Titan Tips & Tricks

ValdikSS23rd June 2020 at 11:55am

Hotkeys

ALT+SPACE shows small symbol panel provided by system, not by keyboard software.


Secret codes

"Calling" to the following codes show secret menus and launch hidden applications. To use some of these codes, you need to activate Developer Menu and activate USB Debugging first (you don't need to connect the phone to PC though).

*#*#4636#*#* — Testing Settings (phone information, mobile network configuration, usage statistics, Wi-Fi info)
*#*#3377#*#* — Factory Test (mtklog, ygps, gravity calibration, distance calibration, smartpa calibration, single test)
*#*#114#*#* and *#*#116#*#* — Camera sensors, LCD panel, memory and other hardware information
*#*#34635280#*#* — Engineer Mode with lots of internal configuration. Here you can change mobile network mode, supported bands, lock to exact cell ID, tune VoLTE/VoWIFI settings and other low level options. Be very careful, do not modify anything unless you understand what would happen exactly.
*#*#08#*#* — Change IMEI numbers (yes, a stock factory application to change IMEI!)
*#*#010#*#* — Check and clear battery usage statistics


Software tips

If your application gets killed, the notifications does not come in instant etc, make sure that the application is allowed to run in background in Settings → DuraSpeed (the tick should be checked/enabled) and in Settings → Intelligent assistance → App blocker. These two options are custom Mediatek battery saving features.
If your application is old and was designed for older Android versions, you may also need to exclude it from stock Android battery saver. Go to Settings → Apps & notifications → See all X apps → find your application → Advanced → Battery → Battery optimization, find your app again and choose "Not optimized"

To disable lockscreen pedometer, go to Toolbox → Pedometer → Settings → disable "Display steps when screen locked".

Use cobalt232's Blackberry Manager to install Blackberry Hub, Calendar, Contacts, Keyboard, Launcher and more. You may also install LayTray for keyboard layout icon in notifications of Blackberry Keyboard.

Install Fluid Navigation Gestures for full-featured gestures, from bottom and sides, with complex patterns. Selected extended functionality requires root.

To remap your keys use Physical Button Master Control (free Xposed module, requires root+edXposed, works when screen is off) or flar2 Button Remapper (premium, some features require root, does not work when screen is off in general, but volume button actions do).
The former is very flexible, it supports complex scenarios and allows you to assign different actions whether screen is on or off, whether audio is playing, and so on.

Alternative keyboard software

ValdikSS23rd June 2020 at 9:49pm

Stock Kika Keyboard has flaws. You can install and use the following software as a replacement:


RuKeyboard (recommended)

Initially made for physical keyboard smartphones back in 2009. Created generally for Russian and other languages with Cyrillic alphabet, but could be modified for any language. Abandoned software but still works with Android 9 perfectly fine. Supports multiple letters on a single hardware key with double/triple press. No bugs, smooth typing experience. Supports layout switching with a hotkey (alt+shift, alt+space, shift+space, user defined) and shows language flag in the notification bar.
Unfortunately, does not support word prediction and correction. You get what you type. First letter capitalization is supported.

RuKeyboard with 5 Russian layouts (as Blackberry Passport, as Blackberry Q5/Q10/Classic, as Blackberry KEYone/KEY2):
Download link 1 | Download link 2

Physical keyboard layouts are stored in apk file, in assets/hard/*.xml files. Take a look at unihertz_titan_ver1.xml for example and implement your own layout for your language accordingly.

Software on-screen keyboard is modified to show only single row of most used symbols which are missing on a physical keyboard with an alt key, similar to Kika Keyboard. You can modify it as well, check res/xml/kbd_query.xml file.


AnySoftKeyboard

AnySoftKeyboard (Google Play link) supports physical keyboards and also requires to create your own layout. Unfortunately, hardware keyboard support is a bit buggy and does not perform autocorrection with the hardware space key, but you will see correction candidates in the top row.
Non-Latin languages for physical keyboard are supported.

By default this keyboard shows full software keyboard. This could be modified only with a custom software layout. AnySoftKeyboard is open source. Examples of software and physical layouts are available on the projects' GitHub.


SwiftKey

Microsoft SwiftKey keyboard is probably the best for Latin languages with small amount of diacritical marks. You won't be able to type diacritical marks but word suggestions work good.

Non-Latin languages for physical keyboard are not supported.

Unihertz Titan original firmware

ValdikSS15th July 2020 at 11:43pm

There are two firmware versions: EMEA (Europe, EEA/TTEU) and non-EMEA (TEE/TTNE).
There's no difference between them as for firmware version 20200603, the files are the same, except for version strings in different places. The difference seems to be in TrustZone applets set, it's different for TEE and EEU versions (at least the signatures are different)
You can check which version you have on the box:

Firmware

Official Google Drive link to all Unihertz ROMs, flashing tool, driver, and flashing instruction, found on Unihertz forum.
The firmware files seem to be updates on a regular basis but may lag behind official over the air updates.

Unihertz Titan firmware Google Drive folder: Full firmware for SP Flash Tool | OTA updates

Current firmware version (TEE): Titan_20200509_20200706-1111 (July 8, 2020).
Android security patch : April 5, 2020
Kernel version: 4.4.146+


Serial number, IMEI and TrustZone applets writing tool

If you accidentally formatted/wiped NVRAM data from your device and now have dummy IMEI and no serial number, you can repair it with the tool. You don't need to do that after usual firmware reflashing procedure.

The tool is available here:
SNWriter Tool Google Drive Folder

Read included readme file and watch the video.

Unihertz Titan TWRP recovery & rooting

ValdikSS14th June 2020 at 10:33pm

TWRP Recovery

TWRP 3.3.1 for Uniherz Titan, semi-working alpha version v0.1

This is TWRP recovery for Unihertz Titan smartphone. It works, but missing two essential features:

  1. Userdata decryption
  2. MTP

That means that you won't be able to access user data (only system, vendor and other internal partitions) unless you disable data encryption entirely in the OS, and won't be able to transfer files over USB with MTP.

Yet, it's still useful for removing bloatware/google services or installing Magisk and obtaining root access.
ADB file transfers (adb pull/push, adb sideload) work fine.

Use this TWRP version only if your really-REALLY want to install custom recovery and/or root.

Link 1 (androidfilehost)
Link 2 (mediafire)
Installation instruction is inside the archive.


Rooting

To root this device, simply install MagiskManager via TWRP, using adb sideload. It will inject Magisk into kernel image.

After installing TWRP, you won't be able to apply Unihertz OTA updates, you'll have to revert back to stock recovery to perform the update. You can reinstall TWRP afterwards.

Custom Android 10 Generic System Image (GSI) Firmware for Titan

ValdikSS16th June 2020 at 4:33pm

GSI stands for Generic System Image. It's a file-system image that you flash to your device's system partition. It's generic because it accesses hardware using the new standardized hardware APIs (so it should work on any treble-enabled device).
In other words, this is a generic custom firmware suitable for Titan.

phhusson provides treble_experimentations firmware based on AOSP Android 10, of different flavors: GAPPS version with common Google applications, GO with Android GO version of applications, FLOSS with open-source replacements of Google components, and VANILLA, the simplest and cleanest one.

Download Android 10 GSI image from treble_experimentations releases.
You need "system-quack-arm64-ab" files. Install it either using TWRP or with fastboot flash system command.

Bluetooth aptX codec support

ValdikSS16th June 2020 at 11:22am

aptX codec support is a premium option which involves paying license fee to Qualcomm, the license holder of the codec. Since Unihertz haven't licensed the codec for Titan, it can't be used for Bluetooth headphones.

Fortunately, the support is still present in the firmware and could be activated by adding missing libraries. Install the following Magisk module (requires root) to activate aptX and aptX HD.

Idle CPU load fix

ValdikSS14th August 2020 at 9:57pm

UPDATE: This issue has been fixed in 07 August 2020 firmware.


June 3, 2020 and July 8, 2020 firmwares for Titan have a bug: it creates unnecessary high CPU load while the phone's screen is off. This has a negative impact on battery life.

The issue is caused by race condition between touchscreen driver and I2C bus suspend procedure. The driver believes the touchscreen is not powered off and does not disable interrupts, while I2C bus is already suspended. This leads to interrupt spam and 90%+ CPU load of a single core.

You won't see this issue in battery stats because it happens in the kernel driver, not in Android system.

Luckily, this could be fixed with a small workaround. Use this Magisk module (requires root):

Updated for Titan_20200706

With this fix battery stats report up to 8 days of estimated phone battery life, compared to 4 days without the fix.

Touch keyboard-navigated mouse pointer

suhanc12th October 2020 at 9:48pm

To have an actual mouse pointer on the Titan's screen which you can navigate using the keyboard touch gestures, edit /system/usr/idc/mtk-pad.idc and replace touch.deviceType = touchPad with touch.deviceType = pointer, then reboot your device.

This feature requires root.

Note that afterwards you might always move the cursor to the place you type into, otherwise typing might be recognized as moving the mouse pointer.

(credits go to Diego in the Unihertz Titan Facebook group)

Unihertz Titan Touchpad Navigation & Selection

ValdikSS18th June 2020 at 9:34pm

This is a small Magisk module utility which switches in-keyboard touchpad to navigation mode (emulation of up/down/left/right keyboard buttons) and text selection mode (as if SHIFT is held).

The utility allows to quickly navigate to exact text symbol and to precisely select the text.

Demo video

Installation: Install ZIP via Magisk (root required).

Hard Reset & Factory Reset Protection

ValdikSS14th June 2020 at 5:51pm

To do hard reset, press and hold POWER+VOLUME UP, you'll boot into bootloader. Select "wipe data/factory reset" using volume buttons and confirm with power button.

if you already did a reset and it asks for account password, that's what called Factory Reset Protection. The easiest is to remember password. If you saved it in PC's browser, just extract it from there. If you totally forgot the password, you'll need to wipe FRP data partition on the device with SP Flash Tool.

Do do that, install SP Flash tool and corresponding drivers (get it from Unihertz Titan original firmware), go to "Format" tab and enter the following data exactly as written:

Manual Format Flash — selected
Region: EMMC_USER
Begin Address: 0x3588000
Format Length: 0x100000

Press green "Start" button and connect your phone to the PC. The phone should be powered off before connection.
Remember to type the addresses exactly as written. Failure to do so may delete device-specific data, radio calibration information, IMEI and MAC address, and so on, and render your device unbootable.

Useful links

ValdikSS26th November 2020 at 11:40pm

ValdikSS

ValdikSS9th July 2020 at 12:20am

This website is created and maintained by ValdikSS <iam@valdikss.org.ru>
Feel free to contact me if you have any updates.

You can edit this page as a wiki and send me edited file over email. Open tiddlywiki.html and start editing.