Jump to content

Zhihe series LTE dongles (generic-zhihe)

From postmarketOS Wiki
Revision as of 17:51, 9 April 2023 by Notfound405 (talk | contribs) (Contributors: added content for partition organization)
Yiming UZ801 v3.0
ssh with executing `neofetch`
ssh with executing `neofetch`
Manufacturer Yiming
Name UZ801 v3.0
Codename yiming-uz801v3
Released 2022
Hardware
Chipset Qualcomm Snapdragon 410 (MSM8916)
CPU 4x 1.0 GHz Cortex-A53
GPU Adreno 305
Display none
Storage 4GB/8GB eMMC
Memory 512MB
Architecture aarch64
Software
Original software Android 4.3
FOSS bootloader yes
postmarketOS
Category testing
Pre-built images no
Mainline yes
Features
Flashing
Works
USB Networking
Works
Internal storage
No data
SD card
No data
Multimedia
3D Acceleration
No data
Camera Flash
No data
Connectivity
WiFi
Works
Bluetooth
No data
GPS
Works
Modem
Calls
No data
SMS
No data
Mobile data
Works
Miscellaneous
USB OTG
Works
Haptics
No data

Contributors

  • notfound405

Users owning this device


How to enter flash mode

adb interface is not enabled by default. To enable adb access and root permission, plug this device into your PC and use browser to access this URL: http://192.168.100.1/usb_debug.html, and replug your device. You'll find an adb device and may try the intructions below.

$ adb reboot edl # Qualcomm EDL, or
$ adb reboot bootloader # fastboot.

See the section below if your device bricks.

Debug UART pin and test pins

Preparation

It is recommended to backup the eMMC before flashing. Refer to EDL.
The original firmware contains too old firmware to boot mainline kernel, use firmwares from Dragon Board 410c as replacement. Also, you may need qhypstub as well as lk1st (lk2nd is not supported).

$ wget https://releases.linaro.org/96boards/dragonboard410c/linaro/rescue/17.09/dragonboard410c_bootloader_emmc_android-88.zip
$ unzip dragonboard410c_bootloader_emmc_android-88.zip
$ # put your device into EDL mode or fastboot mode and flash sbl1(bak), rpm(bak), tz(bak) with the corresponding files extracted.

For qhypstub and lk1st:

$ git clone https://github.com/msm8916-mainline/qhypstub.git
$ cd qhypstub; git clone https://github.com/msm8916-mainline/qtestsign.git
$ make CROSS_COMPILE=aarch64-linux-gnu-
$ # get generated qhypstub-test-signed.mbn and store it somewhere
$
$ cd ..; git clone https://github.com/185264646/lk2nd.git
$ cd lk2nd; git switch patch; make LK1ST_COMPATIBLE=zhihe,uz801-v3 TOOLCHAIN_PREFIX=arm-none-eabi- msm8916-lk1st # refer to the repository for detailed instructions.
$ ../qhypstub/qtestsign/qtestsign.py aboot build-lk1st-msm8916/emmc_appsboot.mbn
$ # get build-lk1st-msm8916/emmc_appsboot-test-signed.mbn and store it somewhere
$
$ # Now flash them to hyp(bak) and aboot(abootbak) partitions with EDL or fastboot.

Installation

See Qualcomm_Snapdragon_410/412_(MSM8916)#Installation.

Some extra notes:

Considering the fact that this device has a very low storage amount and a good mainline support, repartitioning is possible.

partition usage strategy

There are several strategies to make full use of the limited eMMC storage, they are listed below, feel free to add more.

0. Some common recommendations

  • use btrfs for rootfs
pmbootstrap config
  • reduce the size of /boot partition to 128 MB or even smaller (64MB should be enough to boot, but a slightly larger size is recommended)

1. Flash the rootfs and /boot to system partition (not recommended)

<script> pmbootstrap flasher </script> The volume of system partiton is too low to hold a rootfs. It works, but the free space is very low, making it painful to use.

2. Flash the rootfs and /boot to userdata partition (the easiest)

<script>

  1. pmbootstrap flasher --userdata

</script> This one is the easiest, and the volume of userdata partition should be sufficient for common uses. The drawback is that a large amount of storage space is not used.

3. split /boot and rootfs, and flash them to different partitions.

<script> </script> The operation is a bit complex, but you can make use of 2 different partitions, which reduces space wasting. It is recommended to flash /boot partition to cache partition and flash rootfs to system or userdata. Drawback: not officially supported.

Note: you may mount the other partition (usually system or userdata, if you flash /boot to cache partition) to, e.g. /var/lib/docker with /etc/fstab and localmount, so that every large partitions are used.

4. repartition There are two major choices, one is to replace the entire partition table and use your custom one, the other is to do minor modification with gptfdisk, leaving most partitions untouched.

1. replace the entire partition table Refer to [db410c] for detail, no technical support here. It's dangerous and may brick your device, think twice before proceeding.

2. gptfdisk This method is much safer than the previous one. Generally, the easiest solution would be combining system and userdata together. You can do it with gdisk, sgdisk or any tools you like. Just delete all partitions after system and extend system to maximum.

See also