---
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.
