---
layout: post
title:  "TWRP 3.4.0-0 Released"
date:   2020-06-24 13:21:42
categories: site update
version: 3.4.0-0
---

TWRP {{ page.version }} is out now for most currently supported devices.

What's new in {{ page.version }}:
# System As Root (SAR)
- Fix backup and restore using SAR - dianlujitao
- System mount point - Chaosmaster
- ORS - Chaosmaster
- Zip install - Chaosmaster
- system_root bind mount to /system - Chaosmaster
- Autodetection of SAR - Chaosmaster

# Digest
- fix creation of digests for sub-partitions (was bugfix applied to many devices since last year) - Bigbiff

# Encryption
- ext4Crypt Wrapped Key Update - Peter Cai
- Fix upgrading encryption key if export fails - Peter Cai
- Fix wrapped key support for devices without metadata partition - mauronofrio
- Don't skip decryption when using block map file in order to write to /data in ORS - CaptainThrowback
- FDE - Decrypt master key first - AndroidableDroid
- vold_decrypt - set Android version and patch level automatically - CaptainThrowback
- Set wrapped decrypt support by twrp flag - Peter Cai
- Don't try wrapped support unless needed - mauronofrio
- restore ext4 policy on /data/cache - Bigbiff
- multiuser decryption - Noah Jacobson
- FDE retry - AndroidableDroid

# TWRP App
- unmount system after checking for app - Bigbiff

# Prebuilt updates -
- android.hardware.confirmationui@1.0 - cryptomilk

# Compilation Fixes:
- TW\_EXFAT\_FUSE compilation fixes - Bigbiff
- libuuid - cryptomilk
- 'system/etc/ld.config.txt' not found error - Martin Dünkelmann

# Language Updates:
- Portugal - Vasco Machado
- Dutch -  Ian Macdonald
- Turkish - Fatih Fırıncı
- Localisation of Backup_Tar: Ian Macdonald

# ld.config.txt
- updates for 8.x trees - CaptainThrowback
- fix search path for /sbin - CaptainThrowback
- /sbin should come first in search path - Ian Macdonald

# General Bugs
- Fix persistent log storage - SyberHexen
- Compress Persistent Logs - Bigbiff
- FB2PNG compilation errors - Bigbiff
- exclude per_boot from backups - Darth9
- Unmount all directories that point to same block device - AndroidableDroid
- Blank screen fixes - Sean hoyt
- Toolbox is default on android-9+ - mauronofrio

# Cleanup -
- Typo fix in comment - VDavid003
- newlines in ext4crypt - CaptainThrowback
- TW\_OEM\_BUILD compilation issue - Patrick Zacharias
- Fix Dependency requirements - Dees_Troy
- Fix Symbolic links for BB and Toolbox - Dees_Troy

# Bootloader Message
- cleanup - Alessandro Astone
- add configurable offsets

# Error Cleanup
- uevent errors and decryption error - mauronofrio
- using copy_file to copy files from /etc - CaptainThrowback
- ueventd access to /acct - early directory creation in init - cryptomilk

# Haptics
- TSP Driver - LameMonster82
- QTI Input - AndroidableDroid

# update_engine
- read all asserts - Hernán Castañón

# Resetprop
- Add Resetprop from Magisk - CaptainThrowback & mauronofrio
- compile from source - Chaosmaster
- fix for android-7 and earlier - Chaosmaster
- cleanup for spaces in properties - AndroidableDroid

# Properties
- Add Property override - Chaosmaster

# Backuptool
- mount system and vendor for A/B installs for backuptool - Chaosmaster

# twrpTar
- fix backup freezes when pigz and openaes are used - Fabrice Bellet

# Zip Installs
- Info for A/B zip installing to inactive slot - Chaosmaster
- Reboot to system button now allows to be rebooted to different partitions after zip install
- progressbar rework - Chaosmaster

# Magisk updates 
- update binaries from source - AndroidableDroid

# A/B Updater Zip Template
- rewrite A/B installer zip from scratch using a new generic template and latest magiskboot - osm0sis
- installer zip support for recovery\_a/recovery\_b partition ramdisks on newer 2SI SAR A/B devices - osm0sis
- generate installer zips for all prod A/B devices - bigbiff
- improve installer zip dump/write speed and add more error catching - arter97 & osm0sis

# OZIP Encryption Support
- add OZIP encryption - mauronofrio

#File Selector
- Support for more extensions in File Selector - mauronofrio

Want to get notifications when we release new versions of TWRP? [Install the TWRP app and select your device!](https://twrp.me/app)

We need your help! The bulk of TWRP work is done by a handful of people on a volunteer basis. We have pushed most of our device files to [our github](http://github.com/TeamWin/) and we have [a gerrit instance](http://gerrit.twrp.me). If you have the ability, please help us maintain our official devices and/or add your device to our official device list. Thanks in advance!

Head over to the [devices page](http://twrp.me/Devices) to find install instructions and download links.
