[Recovery] TWRP 3.3.1-K1

Search This thread

Kutep0v

Senior Member
Feb 21, 2016
119
1,025
Everywhere
steamcommunity.com
kHQgwnV.png

Features
  • Increased backup/restore speed. Restore is three times faster than on other TWRPs.
  • Improved EFS and Firmware backup. Backups are incompatible with other TWRPs and vice versa.
  • Improved AROMA hack. Almost all (or all?) AROMA archives should work fine.
  • LED Manager. Monitor the battery level and charging state.

Source code


XDA:DevDB Information
TWRP 3.3.1-K1, Tool/Utility for the OnePlus One

Contributors
Kutep0v

Version Information
Status: Stable
Current Stable Version: 3.3.1-K1
Stable Release Date: 2018-06-01

Created 2017-04-11
Last Updated 2019-06-01
 
Last edited:

Kutep0v

Senior Member
Feb 21, 2016
119
1,025
Everywhere
steamcommunity.com
Changelog

TWRP 3.3.1-K1
  • Reduced recovery image size by 2 MB
  • Updated Busybox to 1.30.1
  • Fixed f2fs format
  • Added more bugs to fix later
  • Fix symlink creation
  • Switch between dependencies and modules
  • Digest: Create digest for each subpartition and not just the first.
  • 3.3.1
  • Add option to uninstall TWRP app from /system
  • Flash both A/B partitions when flashing recovery ramdisk
  • Resolve e2fsdroid failure in certain cases
  • Merge "Pass file_contexts path to e2fsdroid" into android-9.0
  • Merge "Update help manual in orscmd" into android-9.0
  • Update help manual in orscmd
  • toolbox: Avoid linking toolbox tools to dd
  • Merge "language: update Chinese translations" into android-9.0
  • language: update Chinese translations
  • Merge "NTFS-3G: use newer libfuse-light in pie." into android-9.0
  • NTFS-3G: use newer libfuse-light in pie.
  • English language: Remove duplicate value.
  • bsd dd: include prebuilt bsd dd in twrp for Nougat and greater
  • Merge "awk: add awk for trees including one-true-awk" into android-9.0
  • Merge "mkshrc: remove post-install cmd and use LOCAL_MODULE_STEM" into android-9.0
  • Merge "Clean up logd init file" into android-9.0
  • Merge "Use BSD grep for builds with toybox" into android-9.0
  • toybox: fix build in 6.0 tree
  • awk: add awk for trees including one-true-awk
  • mkshrc: remove post-install cmd and use LOCAL_MODULE_STEM
  • Clean up logd init file
  • Use BSD grep for builds with toybox
  • ext4crypt: add missing cflag
  • Pass file_contexts path to e2fsdroid
  • Merge "languages: encode for utf-8 in the appropriate places." into android-9.0
  • Updated Russian localization, bugs fixed (letter Ё, cities in time zones are correct, correct checksum, and other minor fixes).
  • languages: encode for utf-8 in the appropriate places.
  • Do not check digest on mapped installs
  • Change slot name position
  • Fix "Install Recovery Ramdisk" of a file which contains a space in the name
  • Fix recovery-twrp in some old CM trees
  • Three Dot Three Dot Zero
  • Extract arch-specific updater binary if present
  • Prevent having to double-tap some check boxes
  • Use magiskboot to repack the boot partition
  • Fix build in 5.1 tree
  • AB Cache dir: If device doesn't have /data/cache for FBE, we should try /persist if in the fstab.
  • Merge "ADB Backup: Ignore creating backup folder for phones not decrypted. This allows you to continue without error. Also we should not set restore path for images in adb backup. Change-Id: Ia75a70377b8e1364fefc82ad41ccf74fa3b7a3c3" into android-9.0
  • ADB Backup: Stop resetting digest check on restore.
  • Fix zip digest check
  • ADB Backup: Ignore creating backup folder for phones not decrypted. This allows you to continue without error. Also we should not set restore path for images in adb backup. Change-Id: Ia75a70377b8e1364fefc82ad41ccf74fa3b7a3c3
  • Zip install: this will allow TWRP to check md5 and sha256 checksums for zip installs.
  • Correct return case for context check in /cache/recovery
  • Transfer /dev/mtp_usb fd ownership when instancing MtpDevHandle
  • updater: Allow devices to suppress BLKDISCARD
  • Don't copy local mke2fs.conf for O-MR1
  • Remove duplicate ext4 flags from Android.mk
  • Set a dummy CM_PLATFORM_SDK_VERSION if it doesn't exist
  • Remove leftover mounts.h~HEAD
  • prebuilt: Support ubsan libraries of all architectures
  • twinstall: Force variable type
  • dosfstools: Fix compile error in Pie tree on 32 bit systems
  • Support both old and new mkfs.f2fs
  • Fix the long broken format function
  • Use listbox for device-specific advanced menu items
  • Merge "Update FDE decrypt to pie from CAF" into android-9.0
  • Update FDE decrypt to pie from CAF
  • MTP FFS updates:
  • Adding Edl button in reboot menu
  • gpt: Add -Wno-format-security
  • TWRP: fix compiling on Android 7
  • Fix gr_clip
  • Full screen action: simplify by just hiding navbar
  • prebuilt: Avoid re-linking ARM64 specific library on other architectures
  • TW_ROTATION: add flag to handle hardware-rotated display panels
  • AB/Non AB Devices: updates for moving cache
  • Vibration: allow BoardConfig to disable vibration for a device.
  • fix building TWRP for devices without cache
  • Merge "slot management: add library for slot management." into android-9.0
  • Merge "Fix build error on Pie with TW_NO_LEGACY_PROPS := true" into android-9.0
  • Merge "Revert "Fix ld.config.txt errors on Android 8.1 system root devices"" into android-9.0
  • Merge "Add path for time and date fix" into android-9.0
  • Merge "vold_decrypt: Add android 9.0 support" into android-9.0
  • mksh: add mkshrc when using TW_USE_TOOLBOX
  • Merge "partition: add squashfs support" into android-9.0
  • Add path for time and date fix
  • Merge "minuitwrp: Remove unused variables" into android-9.0
  • slot management: add library for slot management.
  • partition: add squashfs support
  • vold_decrypt: Add android 9.0 support
  • Hide navbar while running operations
  • Revert "Fix ld.config.txt errors on Android 8.1 system root devices"
  • Merge "Revert "updater: Remove dead make_parents()."" into android-9.0
  • toybox: create getprop symlink on SDK 27
  • minuitwrp: Remove unused variables
  • Fix Check_Lifetime_Writes on AB devices
  • Add metadata decrypt support for FBE
  • libminuitwrp updates for Pixel 3 devices
  • minuitwrp: Fix detection of libdrm on Pie
  • twrp: Fix unsigned compare compile warning.
  • minuitwrp: Support haptics drivers registered with LED class framework
  • minuitwrp: Respect TARGET_RECOVERY_PIXEL_FORMAT config.
  • Merge "vold_decrypt: use ANDROID_ROOT for additional compatibility" into android-9.0
  • Merge "Include weaver library in 9.0 trees" into android-9.0
  • Fix building in Lineage 16.0
  • vold_decrypt: use ANDROID_ROOT for additional compatibility
  • Merge "twrp: use ANDROID_ROOT environment variable" into android-9.0
  • Merge "Add option to use ro.serialno for generating device id" into android-9.0
  • prebuilt: resolve libext2_misc.so dependency for mke2fs
  • Include weaver library in 9.0 trees
  • Merge "Fix sha2 generation persistence." into android-9.0
  • minui: Don't include errno.h twice
  • Revert "updater: Remove dead make_parents()."
  • Add option to use ro.serialno for generating device id
  • Fix build error on Pie with TW_NO_LEGACY_PROPS := true
  • Fix sha2 generation persistence.
  • Fix header file for property_get
  • Decrypt FBE on 9.0 (backwards compatible)
  • twrp: use ANDROID_ROOT environment variable
  • Merge AOSP android-9.0.0_r3
 
Last edited:

Kutep0v

Senior Member
Feb 21, 2016
119
1,025
Everywhere
steamcommunity.com
Frequently asked questions

Q: Why backups are incompatible with other TWRPs and vice versa?
A: Some components have been improved or simply is not supported in other versions.
  • EFS backup is not supported in the official version. Other unofficial versions don't backup one important partition, which is also part of the EFS.
  • Firmware backup is not supported in the official version. Other unofficial versions uses an unreliable method of modem partition backup.
  • System Image is not supported in the official and other unofficial versions.

Q: What is the difference between System and System Image backup?
A: Different backup methods.
  • System – files method. Create usual archive by packing all files from a system partition. Not available since version 3.2.1-K2.
  • System Image – dd method. Create exact partition dump by reading every single block from a system partition.
Same backup/restore speed, but different backup size. In the first case, the backup size corresponds to size of the contained files in system partition. In the second case, the backup size always is fixed and corresponds to size of the partition.

Q: Charging LED broken in this recovery too?
A: No, it works. Since 3.2.0-K1 release included LED Manager. Logic:
  • If the battery status is "Charging", then:
    — If the battery capacity is "Low" (1-14), then turn on the red LED.
    — If the battery capacity is "Mid" (15-89), then turn on the yellow LED.
    — If the battery capacity is "High" (90-100), then turn on the green LED.
  • If the battery status is "Discharging", then:
    — If the battery capacity is "Low", then blink the red LED.
    — If none of the cases is true, then turn off LED.
  • If the battery status is "Full", then turn on the green LED.
  • If none of the cases is true, then turn off LED.
 
Last edited:

Kutep0v

Senior Member
Feb 21, 2016
119
1,025
Everywhere
steamcommunity.com
I think Tuga recovery works extremely flawless.
Well, let's compare the restore speed.

What do we have? 5504MB backup and two different TWRPs. Time:
TWRP 3.1.1-2-TugaPower: 616 sec.
TWRP 3.1.1-K3: 198 sec.

Conclusion: TWRP 3.1.1-2-TugaPower is three times slower than TWRP 3.1.1-K3. Really "flawless".
 

Attachments

  • Screenshot_1973-04-01-03-50-36.png
    Screenshot_1973-04-01-03-50-36.png
    178.9 KB · Views: 2,121
  • Screenshot_1973-04-01-04-03-11.png
    Screenshot_1973-04-01-04-03-11.png
    177.2 KB · Views: 2,074
Last edited:

Mr.Ak

Senior Member
Jan 14, 2015
4,405
1,968
24
*RESTRICTED AREA*
Well, let's compare the restore speed.

What do we have? 3344MB backup and two different TWRP's. Time:
TWRP 3.0.3-2-TugaPower: 386 sec.
TWRP 3.0.3-K1: 139 sec.

Conclusion: TWRP 3.0.3-2-TugaPower ~280% (x2.8) slower than TWRP 3.0.3-K1. Really "flawless".

Okay,looks promising.
But what about Twrp 3.0.3-6 tugapower?
Anyways going to try out your recovery now to see the difference.

---------- Post added at 06:22 PM ---------- Previous post was at 06:08 PM ----------

@Kutep0v
Is lineage os 13.0 in your folder official?
 

Kutep0v

Senior Member
Feb 21, 2016
119
1,025
Everywhere
steamcommunity.com
But what about Twrp 3.0.3-6 tugapower?
Umm... nothing. Last available 3.0.3-2 version, 3.0.3-5 broken (as always). If the 3.0.3-6 will be released, we will test.

Is lineage os 13.0 in your folder official?
Of course not. This is my releases for another forum. I try to maintain LineageOS 13.0 for OnePlus One.
Works update over the air. Kernel contains all CVE fixes from cm-14.1 branch.
 

Mr.Ak

Senior Member
Jan 14, 2015
4,405
1,968
24
*RESTRICTED AREA*
Umm... nothing. Last available 3.0.3-2 version, 3.0.3-5 broken (as always). If the 3.0.3-6 will be released, we will test.


Of course not. This is my releases for another forum. I try to maintain LineageOS 13.0 for OnePlus One.
Works update over the air. Kernel contains all CVE fixes from cm-14.1 branch.

I asked because I haven't saw your lineage os 13.0 thread on XDA.Anyways,the recovery is really fast! Thanks!
Edit: what is the difference between 'system' and 'system-img' backup?
See attachments.
 

Attachments

  • Screenshot_2017-02-26-12-31-36.png
    Screenshot_2017-02-26-12-31-36.png
    128 KB · Views: 2,244
Last edited:

Kutep0v

Senior Member
Feb 21, 2016
119
1,025
Everywhere
steamcommunity.com
what is the difference between 'system' and 'system-img' backup?
  • System – files backup method. Files from system partition will be packed to tar archive.
  • System Image – dd backup method. Partition dump. It's required in some cases.
Same backup/restore speed, but different backup size. In the first case, backup size corresponds to size of the contained files in system partition. In the second case, backup size always is fixed and corresponds to size of the partition.
 
Last edited:

Gawd

Senior Member
Jan 26, 2015
1,249
1,818
The physical buttons also get activated in the recovery. I would prefer them to stay off (no functionality+no backlight) since we already have the on-screen navbar.

Thanks.
 

Gawd

Senior Member
Jan 26, 2015
1,249
1,818
Also, AROMA installer works better on Tuga Recovery. It would be great if you could also make that work just like that, nothing more.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 131
    kHQgwnV.png

    Features
    • Increased backup/restore speed. Restore is three times faster than on other TWRPs.
    • Improved EFS and Firmware backup. Backups are incompatible with other TWRPs and vice versa.
    • Improved AROMA hack. Almost all (or all?) AROMA archives should work fine.
    • LED Manager. Monitor the battery level and charging state.

    Source code


    XDA:DevDB Information
    TWRP 3.3.1-K1, Tool/Utility for the OnePlus One

    Contributors
    Kutep0v

    Version Information
    Status: Stable
    Current Stable Version: 3.3.1-K1
    Stable Release Date: 2018-06-01

    Created 2017-04-11
    Last Updated 2019-06-01
    55
    TWRP 3.2.3-K1
    • Fixed userdata decryption on Pie (thanks to Ketut P. Kumajaya)
    • Added ability to backup Recovery and Persist partitions
    • Added Busybox 1.29.3 binary. This should solve the problems with busybox-binded scripts.
    • Don't skip decryption when installing mapped zips. This should solve the problems with some addon.d scripts.
      ---------- git log ----------
    • Hide navbar while running operations
    • minuitwrp: Remove unused variables
    • Fixed: undefined ANDROID_ROOT is an error.
    • recovery: Get a proper shell environment when using toybox
    • toybox: create getprop symlink on SDK 27
    • Fix Check_Lifetime_Writes on AB devices
    • twrp: Fix unsigned compare compile warning.
    • minuitwrp: Support haptics drivers registered with LED class framework
    • minuitwrp: Respect TARGET_RECOVERY_PIXEL_FORMAT config.
    • vold_decrypt: use ANDROID_ROOT for additional compatibility
    • Add option to use ro.serialno for generating device id
    • Fix sha2 generation persistence.
    • twrp: use ANDROID_ROOT environment variable
    • vold_decrypt: Actually depend on init.recovery.vold_decrypt.rc
    • vold_decrypt: Add in recovery vold and vdc
    • partition: Update f2fs format code
    • Fix the long broken format function
    • Allow excluding file-based encryption from the TWRP build
    • Make adb use a custom prop for adb root
    • Add tool to dump a crypto footer on FDE devices
    • TWRP: add an option to exclude the TWRP app
    • uncrypt: fix f2fs ioctl argument for pin_file
    • f2fs: support f2fs by setting unmovable bit for package file
    • install: mkfs.f2fs: specify sector size for target image size
    • add sload.f2fs for recovery format
    • recovery: format f2fs with encrypt/quota
    • libcryptfslollipop: set key_size before use
    • Use Oreo unzip provided by system/core/libziparchive
    • prebuilt: resolve libext2_misc.so dependency for mke2fs
    • recovery: updater: Fix SymlinkFn args
    • Add more specific error codes for uncrypt failures
    • updater: Allow devices to suppress BLKDISCARD
    • Don't copy local mke2fs.conf for O-MR1
    • Remove duplicate ext4 flags from Android.mk
    • Set a dummy CM_PLATFORM_SDK_VERSION if it doesn't exist
    • Remove leftover mounts.h~HEAD
    • Remove remaining pieces of supersu
    • enable md5sum digest verification
    • Fix installing OTAs without decrypting
    • Fix ld.config.txt errors on Android 8.1 system root devices
    • language: italian: Fix SELinux support label
    • Remove SuperSU
    • toolbox: prevent executing tools
    • Cleanup TWRP flags
    • Revert "minuitwrp: drm: wait for last page flip to complete"
    • Revert "updater: Remove some obsoleted functions for file-based OTA."
    • Revert "kill package_extract_dir"
    • Enable arm64 neon scrypt implementation
    • ADB Backup: fix md5 check on restore. Add debug capability. Fix backup of images after tarred partitions with too much padding Add more md5 logging. Skip digest check if selected. Change ADB Backup version to 3 for new fixes to image padding.
    • partitionmanager: signal when Mount_To_Decrypt partitions are mounted
    • TWRP: vold_crypto: Allow custom strace path
    • vold_decrypt: Code cleanup
    • TWRP: Added TW_CLOCK_OFFSET flag to further adjust the clock.
    • TWRP: Move the valid current time up to trigger fix on more devices. For example on my device, the LG V20 (US996), the default time comes back as 2016 which doesn't trigger the fixup code. The actual time I picked was pretty arbitrary, but close to the current date, since we're checking if said date/time is reasonably accurate without the fixup code.
    • Skip decryption when installing mapped zips
    • minuitwrp: drm: wait for last page flip to complete
    • minuitwrp: use a separate draw buffer for DRM as well
    • minuitwrp: drm: fix RECOVERY_BGRA pixel format
    • Merge "external/scrypt: use proper nativehelper headers" into android-8.1
    • Merge "scrypt doesn't need <machine/cpu-features.h>." into android-8.1
    • Merge "scrypt: Don't hardcode gtest path." into android-8.1
    • Merge "otafault/tests: Replace pathmap with commands_recovery_local_path" into android-8.1
    • Merge "applypatch: Fix bad AOSP merge" into android-8.1
    • Merge "applypatch: Remove obsolete pathmap changes" into android-8.1
    • Revert "Remove the obsolete package_extract_dir() test"
    • toybox: microcom is not present in the lineage 14.1 source.
    • external/scrypt: use proper nativehelper headers
    • scrypt doesn't need <machine/cpu-features.h>.
    • scrypt: Don't hardcode gtest path.
    • otafault/tests: Replace pathmap with commands_recovery_local_path
    • applypatch: Fix bad AOSP merge
    • applypatch: Remove obsolete pathmap changes
    • toybox: Fix build for android 8.1
    • Merge "GitHub: Add issue and pull request templates" into android-8.1
    • Merge "ext4crypt: keymaster: fix missing include" into android-8.1
    • Language: Add version info to copying_log in turkish lang.
    • Update Turkish translations.

    I did a short test, everything is working fine, well, as far as possible on an ancient phone that barely holds encryption. Hope there is no critical errors.

    P.S. Now I want to talk about the future of this project.
    You probably noticed that I often disappear for a long time. There is a reason for this. My circle of interests is constantly changing. Today I can be engaged in Android development, and tomorrow something completely different. And this "tomorrow" came, quite a while ago. I'm not interested in these Android related stuff. I just use the phone, no more flashing ROMs, kernels, mods and even security updates. As I said, the update will be released at the weekend, and I did it. I don't know what's next. It's difficult to do what not interests me and what I don't use. Perhaps this is the latest update, but I want to believe that it's not. I'm surprised that there are so many "flashaholics" left. Thank you for being with me all this time.
    44
    TWRP 3.2.0-K1
    • 3.2.0 version
    • LED Manager
    • NTFS support for USB-OTG
    • Fix compile error with IGNORE_MISC_WIPE_DATA in some trees
    • Fix more compile errors in bootloader_message_twrp
    • Better compatibility across 8.0.0 trees
    • minui: Fix building graphics_overlay.cpp
    • minui: Move graphics_overlay.h down that we have all structs defined
    • minui: Add missing <linux/ion.h> for 'struct ion_handle_data'
    • minui: Only include graphics_adf.h if we do not build with MSM_BSP
    • minui: Do not overwrite previously set CFLAGS
    • Fix build error in old 5.0 tree
    • ADB Backup: fix compilation error for remove
    • vold_decrypt: FDE Keymaster 3.0 support
    • FBE for Pixel 2
    • Fix issues building with LineageOS cryptfs_hw
    • Support v2 fstab format
    • ADB Backup: Fix gzip backup and restore
    • ADB Backup: add ability for TWRP GUI to restore
    • Improve greek translation
    • Improve automatic detection of QCOM RTC fix
    • Fix compile error in bootloader_message_twrp on 6.0 tree
    • Auto detect possible use of legacy props
    • Fix mkfs.f2fs build error
    • Fix 'No OS' on System_Image restore after wipe
    • Fix a few build errors
    • Add libraries needed in 8.0 for e2fsck and tune2fs
    • Make legacy props an option disabled by default
    • Update to AOSP 8.0 base
    • DO NOT MERGE Android 8.0 stuff
    • Remove duplicate entries & Improve Chinese translation
    Decryption not verified. (as always)
    41
    Frequently asked questions

    Q: Why backups are incompatible with other TWRPs and vice versa?
    A: Some components have been improved or simply is not supported in other versions.
    • EFS backup is not supported in the official version. Other unofficial versions don't backup one important partition, which is also part of the EFS.
    • Firmware backup is not supported in the official version. Other unofficial versions uses an unreliable method of modem partition backup.
    • System Image is not supported in the official and other unofficial versions.

    Q: What is the difference between System and System Image backup?
    A: Different backup methods.
    • System – files method. Create usual archive by packing all files from a system partition. Not available since version 3.2.1-K2.
    • System Image – dd method. Create exact partition dump by reading every single block from a system partition.
    Same backup/restore speed, but different backup size. In the first case, the backup size corresponds to size of the contained files in system partition. In the second case, the backup size always is fixed and corresponds to size of the partition.

    Q: Charging LED broken in this recovery too?
    A: No, it works. Since 3.2.0-K1 release included LED Manager. Logic:
    • If the battery status is "Charging", then:
      — If the battery capacity is "Low" (1-14), then turn on the red LED.
      — If the battery capacity is "Mid" (15-89), then turn on the yellow LED.
      — If the battery capacity is "High" (90-100), then turn on the green LED.
    • If the battery status is "Discharging", then:
      — If the battery capacity is "Low", then blink the red LED.
      — If none of the cases is true, then turn off LED.
    • If the battery status is "Full", then turn on the green LED.
    • If none of the cases is true, then turn off LED.
    36
    TWRP 3.1.1-K3
    • Backup and restore a little bit faster
    • Charge LED (request)
    • More debuggable
    • Fix typos/inconsistencies in German language
    • Show scrollbar on TWRP Settings
    • SHA2: Enable in landscape and watch xml
    • twrpTar: Fix uninitialized current_archive_type
    P.S. As always, I can't verify the decryption. Write to me in case of problems. :confused: