[2015.10.09]CWM 6.0.5.1 - PhilZ Touch 6.59.0 (libtouch_gui 1.42)

Search This thread

Phil3759

Inactive Recognized Developer
May 30, 2012
9,561
33,050
I've rewritten the code for the sdcard menu labels. I think I did a better job at preventing memory leaks :) I also implemented it as a recovery setting. Currently it's still set in the boardconfig, but if there is a way to do character input in the recovery, it can easily be switched to that by reimplementing the setup_display_labels function. :) I've also written it so that it handles just about every possible situation for input via the boardconfig option, so you can set just the internal storage, external, etc. I've got to finish the changes up when I get home from school, and then I'll push them to my github.

Let me know when done
I will review and see if i pull them

Just busy working on loki fix
 
  • Like
Reactions: mw86

cooldudezach

Member
Dec 29, 2013
47
15
Let me know when done
I will review and see if i pull them

Just busy working on loki fix

Ok, I will. It didn't go exactly as planned, since I was rushing a bit to get to school, so I had to backtrack just a bit. I also realized some of the code needs a minor rewrite as well to properly implement the labels, so I'm working on that as well.
 

cooldudezach

Member
Dec 29, 2013
47
15
Let me know when done
I will review and see if i pull them

Just busy working on loki fix

OK, it's finally done. :)
https://github.com/cooldudezach/philz_touch_cwm6
As last time, it's the latest commit. Let me know if I screwed it up this time lol. Anywhere there is a menu that has options for vold devices, so /sdcard etc, it can replace /sdcard with whatever is predefined as the label.
The only exceptions are the menus in libtouch_gui:
"Backup and Restore --> Clone ROM to update.zip --> Create from Current ROM/Previous Backup"
"PhilZ Settings --> GUI Preferences --> Change Background"

Edit: Actually I did find a small bug I'm attempting to fix, but a look at the code would be nice. :) Thanks.
Edit2: The bug is this: If a label is not defined for a storage volume, empty or otherwise, then it doesn't set the label properly. I think I know the issue, but I'm tired and have work in a few hours.
Edit3: Fixed it. It was a silly logic error that I hadn't accounted for when dealing with more than 1 extra storage device. The repo is now ready to be dissected. Sleep time.
Edit4: oops, had to remove my debugging code! Now it's all good.
 
Last edited:
  • Like
Reactions: Phil3759

invisiblek

Recognized Developer
Feb 24, 2010
1,584
5,894
Minnesota
www.invisiblek.org
Feature request:

After choosing a zip, on the screen where it shows the options:
- No
- Yes - install blahblah.zip
- No
- Return or whatever

Have it generate the md5sum of the chosen zip down below. Maybe something there like "Determining md5sum..." and have it so you don't actually have to wait for it, but if it generates before you choose yes, have it display.

Just a thought....

Unrelated - I reverted the auto-loki on jflte for now, until the official cwm patch gets applied. It's trying to use loki on non-loki devices (jfltetmo, jfltecan, whatever)
 

Phil3759

Inactive Recognized Developer
May 30, 2012
9,561
33,050
OK, it's finally done. :)
https://github.com/cooldudezach/philz_touch_cwm6
As last time, it's the latest commit. Let me know if I screwed it up this time lol. Anywhere there is a menu that has options for vold devices, so /sdcard etc, it can replace /sdcard with whatever is predefined as the label.
The only exceptions are the menus in libtouch_gui:
"Backup and Restore --> Clone ROM to update.zip --> Create from Current ROM/Previous Backup"
"PhilZ Settings --> GUI Preferences --> Change Background"

Edit: Actually I did find a small bug I'm attempting to fix, but a look at the code would be nice. :) Thanks.
Edit2: The bug is this: If a label is not defined for a storage volume, empty or otherwise, then it doesn't set the label properly. I think I know the issue, but I'm tired and have work in a few hours.
Edit3: Fixed it. It was a silly logic error that I hadn't accounted for when dealing with more than 1 extra storage device. The repo is now ready to be dissected. Sleep time.
Edit4: oops, had to remove my debugging code! Now it's all good.


Please do not take it personally, but your code is really, really buggy and is causing memory leak and corruption
An advice: use small snippets, compile them on a linux box, fix all your warnings and read carefully manpage for every function you use
Also, before using strdup, get used to malloc and such
Finally, just drop strsep from your habits

I added the idea to my todo list and will look at it once
Hope you do get me


Feature request:

After choosing a zip, on the screen where it shows the options:
- No
- Yes - install blahblah.zip
- No
- Return or whatever

Have it generate the md5sum of the chosen zip down below. Maybe something there like "Determining md5sum..." and have it so you don't actually have to wait for it, but if it generates before you choose yes, have it display.

Just a thought....

Unrelated - I reverted the auto-loki on jflte for now, until the official cwm patch gets applied. It's trying to use loki on non-loki devices (jfltetmo, jfltecan, whatever)

md5: to avoid waiting, the way the cwm gui is done will need to add that to a separate pthread probably. Will look at it, but not sure the way I would do it
also, zip has crc32 check. Is it really vital to add md5?

About jflte: I have no idea why they do not merge that code in CWM
By the way, you could just revert the flag define. The ro.loki_enabled has no effect alone
 

sdeft

Senior Member
Nov 22, 2008
597
129
Hi Phil3759

I tried this recovery on Xperia SP and there is a problem with the reboot command in updater-script files. In most of my scripts I have as last line
run_program("/sbin/reboot");

but in this recovery after updater-script finishes the phone is not rebooted.
In plain CWM it works fine. Why is this ?

Also 6.19.3 version will not be available for SP ?
 

Phil3759

Inactive Recognized Developer
May 30, 2012
9,561
33,050
Hi Phil3759

I tried this recovery on Xperia SP and there is a problem with the reboot command in updater-script files. In most of my scripts I have as last line
run_program("/sbin/reboot");

but in this recovery after updater-script finishes the phone is not rebooted.
In plain CWM it works fine. Why is this ?

Also 6.19.3 version will not be available for SP ?

sony devices are now maintained by developers owning the phone
They are porting it

In new updates, I merged this commit:
https://github.com/CyanogenMod/andr...mmit/66d63f719802760f4704718a5d2665dc8b6f8d84

which was causing the trouble
 

Phil3759

Inactive Recognized Developer
May 30, 2012
9,561
33,050
ok thanks. Is there a git for sony devices in case I want to try and build one ? (following your build guide in this thread).

I use stock cm device tree
However, you need to repack with stock kernels

There are many guides in sony forums

It is also already updated I think by @shoey63
 

mohaxs

Senior Member
Dec 11, 2013
140
24
Hi @Phil3759 , thanks for your great work. But I'm facing problem on my S2 I9100, when i flashed philz_touch_6.12.8-i9100.zip my IMEI is gone. But if I flash again with other kernel my IMEI is come back. Please help.

Sent from my GT-I9100
 
Last edited:

cooldudezach

Member
Dec 29, 2013
47
15
Please do not take it personally, but your code is really, really buggy and is causing memory leak and corruption
An advice: use small snippets, compile them on a linux box, fix all your warnings and read carefully manpage for every function you use
Also, before using strdup, get used to malloc and such
Finally, just drop strsep from your habits

I added the idea to my todo list and will look at it once
Hope you do get me

I'm taking all advice here to heart. It's a new venture for me, and memory management is something I'm not familiar with, so I will do a bunch more research then!
I will look into strdup, malloc some more for sure. I did go through the code in extendedcommands and advanced_commands, and I thought that I had strdup setup the same, but I'm not the expert here ;)
I'm curious as to why strsep is so bad. In my google searches so far, it seems to be a somewhat unanimous agreement that strtok is bad, since it is not thread friendly, and that strtok_r is a better alternative. Again from my searching, I was under the impression that strsep functions the same as strtok_r except that it returns a string for every delimeter, whereas strtok/strtok_r do not.

side question: and how do I check for memory leak and corruption?
edit: I was also thinking, my code doesn't output any warnings except for 1, which is complaining that i didnt use brackets. No further warnings are generated after adding the brackets.
 
Last edited:

HippoMan

Senior Member
May 5, 2009
1,586
433
Hippoland
I'm curious as to why strsep is so bad. In my google searches so far, it seems to be a somewhat unanimous agreement that strtok is bad, since it is not thread friendly, and that strtok_r is a better alternative. Again from my searching, I was under the impression that strsep functions the same as strtok_r except that it returns a string for every delimeter, whereas strtok/strtok_r do not.
strsep isn't bad, per se. However, it isn't a POSIX routine, and hence, isn't portable. Therefore it's not found in all C environments.

Also, with strsep, you need to understand that you might get empty strings returned to you if you're parsing a string which contains multiple consecutive token separators. strtok and strtok_r do not return those empty strings.

As you know, strtok_r routine is much better than strtok because the former is thread-safe. Furthermore, strtok also can be problematic, even if you aren't using threads. If you have parsed some, but not all of the substrings of a string using strtok, and if you call strtok again on a different string, you will get surprising results if you later go back and make another call to strtok to get the next token from your original string. This is because strtok makes use of a static buffer to hold its intermediate results. strtok_r is preferred, because it doesn't make use of such a static buffer.

In a Stackoverflow discussion concerning this topic (http://stackoverflow.com/questions/7218625/what-are-the-differences-between-strtok-and-strsep-in-c), note the following quote by Jonathan Leffler:

When to use them?

  • You would use strsep() when you want empty tokens rather than allowing multiple delimiters between tokens, and when you don't mind about portability.

  • You would use strtok_r() when you want to allow multiple delimiters between tokens and you don't want empty tokens (and POSIX is sufficiently portable for you).

  • You would only use strtok() when someone threatens your life if you don't do so. And you'd only use it for long enough to get you out of the life-threatening situation; you would then abandon all use of it once more. It is poisonous; do not use it. It would be better to write your own strtok_r() or strsep() than to use strtok().
.​
 
Last edited:

Phil3759

Inactive Recognized Developer
May 30, 2012
9,561
33,050
I'm taking all advice here to heart. It's a new venture for me, and memory management is something I'm not familiar with, so I will do a bunch more research then!
I will look into strdup, malloc some more for sure. I did go through the code in extendedcommands and advanced_commands, and I thought that I had strdup setup the same, but I'm not the expert here ;)
I'm curious as to why strsep is so bad. In my google searches so far, it seems to be a somewhat unanimous agreement that strtok is bad, since it is not thread friendly, and that strtok_r is a better alternative. Again from my searching, I was under the impression that strsep functions the same as strtok_r except that it returns a string for every delimeter, whereas strtok/strtok_r do not.

side question: and how do I check for memory leak and corruption?
edit: I was also thinking, my code doesn't output any warnings except for 1, which is complaining that i didnt use brackets. No further warnings are generated after adding the brackets.

Will look closer at your code. Thought you forgot to malloc pointer to pointer array but i see you defined it as static and fixed size

Could be a good go
 

kunal1540

Senior Member
Jun 6, 2013
1,170
528
City of oranges
Hey Phil
I an using your recovery 6.00.8 fit gt i9300
yesterday I got into a problem when I couldn't restore a backup from my internal SD card which I backed up earlier...
First I thought that it got wiped so I restored another backup which was saved in extsdcard... and when it noted up I saw that the backup I was trying to restore was there in the SD card...
Any help on that???
Thanks

Sent from my GT-I9300
 

sdeft

Senior Member
Nov 22, 2008
597
129
got another question Phil

Is there a way of changing the touch buttons without building recovery ? Any config file in the cpio ? Or is it embedded in the recovery binary ? Would prefer up to be on left and down on right.

Managed to solve the reboot problem with the fix you provided. Just unpacked the cpio file. Thanks!
 

Phil3759

Inactive Recognized Developer
May 30, 2012
9,561
33,050
got another question Phil

Is there a way of changing the touch buttons without building recovery ? Any config file in the cpio ? Or is it embedded in the recovery binary ? Would prefer up to be on left and down on right.

Managed to solve the reboot problem with the fix you provided. Just unpacked the cpio file. Thanks!

no
button position is hard coded in recovery sources
 

Phil3759

Inactive Recognized Developer
May 30, 2012
9,561
33,050
6.19.6
- loki: fix auto loki was broken and clean up sources
- hammerhead: add efs backup/restore
- m7 variants: fix charger in off mode
- jewel: fix no fstab!

These devices will be updated to fix above issues:
jflte
hammerhead
m7ul m7spr m7tmo m7att m7vzw
d800 d801 d802 d803 d805 d806 ls980 vs980
v500
e980
jewel
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 1573

    << New in version 6: Smoother touch with kinetics, basic theme support, KitKat ready, MTK devices support >>


    End Of Support
    Project Status: No Longer Updated

    As I mentioned before, I have a lot of new important projects in my real life. I am very happy to abandon this project for real life alternatives.
    CWM is a dead project for now, until some dev resurrects it. I was about to do, until these new projects came.

    Current version will probably work a while for many devices. Some devices with new ROM installers could have issues. Just use TWRP and avoid the new CM Simple Recovery

    If the current version works for you, there is no reason you don't use it though. No need to ***** in all threads because it doesn't work for you. Just move on to other alternatives.



    * * * * * * * * * * * * * * * * * * * * * * * * *
    PhilZ Touch 6 Recovery
    CWM Advanced Edition 6.x
    * * * * * * * * * * * * * * * * * * * * * * * * *



    >> Change Log <<
    >> FAQ <<



    Download Home
    https://mega.co.nz/#F!oZ1QDDbC!Ko20UNhowwIlXLVFjJsyKw

    Older versions:
    http://d-h.st/users/philz_touch




    Specific Devices Threads
    All general requests for these devices must go into their threads
    Keep this thread for dev support and porting to new devices


    Amazon
    - Kindle Fire HD 8.9 (jem)
    - Kindle Fire HD 7 (tate)

    Android
    - One (sprout) by @varun.chitre15

    Asus
    - Asus Transformer Pad TF300T (tf300t)
    - Asus Transformer Prime TF700T (tf700t)

    HTC
    - HTC Evo 3D (shooteru) by @johnnyslt
    - HTC Desire X (protou)
    - HTC DROID Incredible 4G LTE (fireball)
    - HTC Explorer (pico)
    - HTC One GSM (m7ul --> m7)
    - HTC One T-Mobile (m7tmo --> m7)
    - HTC One AT&T (m7att --> m7)
    - HTC One Sprint (m7spr)
    - HTC One Verizon (m7vzw)
    - HTC One M8 (m8): unified for International, Verizon and Sprint
    - HTC One Mini (m4)
    - HTC Droid DNA (dlx)
    - HTC Desire 601 (zara)
    - HTC Desire 601 dual sim (zaradug) by @andreya108
    - HTC Desire S (saga) by @Ruling
    - HTC Desire HD (ace) by @Ruling
    - HTC One S (ville)
    - HTC One V (primou)
    - HTC One X (endeavoru)
    - HTC One X+ (enrc2b)
    - HTC One XL (evita)
    - HTC Evo 4G LTE (jewel)
    - HTC Rezound (vigor)
    - HTC Desire 816 (a5) by @v_superuser

    Google
    - LGE Nexus 4 (mako)
    - LGE Nexus 5 (hammerhead)
    - ASUS Nexus 7 (tilapia + grouper)
    - ASUS Nexus 7 2013 (flo)
    - ASUS Nexus 7 2013 LTE (deb)
    - Samsung Nexus 10 (manta)
    - Samsung Galaxy Nexus - GSM (maguro)
    - Samsung Galaxy Nexus - Verizon (toro)
    - Samsung Galaxy Nexus - Sprint (toroplus)
    - Samsung Galaxy Nexus S (crespo)
    - Samsung Galaxy Nexus S 4G (crespo4g)

    LGE
    - LG Optimus One P500 (p500)
    - LG Optimus L5 (e610)
    - LG Optimus G International (e975)
    - LG Optimus G ATT (e970)
    - LG Optimus G Sprint (ls970)
    - LG Optimus G Canada (e973)
    - LG Optimus G Pro GSM (e980)
    - LG Spectrum 4G (vs920)
    - LG G2 AT&T (d800), TMO (d801), Int (d802), d803, d805, d806, Verizon (vs980), Sprint (ls980)
    - LG Nitro HD AT&T (p930)
    - LG G Pad 8.3 (v500)
    - LG Optimus 4X HD P880 (p880)
    - LG Optimus L7 P700 (p700) by @ali.filth

    Motorola
    - Motorola Droid RAZR M (xt907)
    - Motorola Droid RAZR HD International (xt925) and US (xt926)
    - Motorola Unified msm_8960 (xt925/xt926)
    - Motorola Atrix HD (mb886)
    - Motorola Moto X variants: TMO (xt1053), US Cellular (xt1055), Sprint (xt1056), GSM (xt1058), VZW (xt1060)
    - Motorola Moto G unified (falcon) for: Verizon (xt1028), BoostMobile (xt1031), GSM (xt1032), Dual Sim (xt1033), Retail US (xt1034)

    Oppo
    - Find 5 (find5)
    - Find 7, Find7a (find7)
    - N1 (n1)

    Samsung
    - Galaxy S2 i9100/P
    - Galaxy S2 Epic 4G Touch - SPH-D710 (d710)
    - Galaxy S2 i9100G
    - Galaxy R/Z (i9103)
    - Galaxy S i9000 (galaxysmtd)
    - i9001 - Galaxy S Plus (ariesve)
    - Galaxy S Captivate (captivatemtd) by @brandonabandon
    - Galaxy Grand Duos (i9082)
    - Galaxy Exhibit - SGH-T599N (codinamtr)
    - Galaxy W i8150 (ancora)
    - Galaxy Grand Quatro I8552 (delos3geur) by @ali.filth
    - Galaxy S 2 Skyrocket SGH-I727 (skyrocket)
    - Galaxy S Blaze 4G - SGH T769 (t769)
    - Galaxy S2 HD LTE - SGH-I757M (celoxhd)
    - Exhilarate - SGH-I577 (exhilarate)
    - N7000
    - Galaxy S3 i9300 - i9305
    - Galaxy S3 Unified d2 variants (d2lte): d2att d2cri d2mtr d2spr d2tmo d2usc d2vzw
    - Galaxy S3 T-Mobile / SGH-T999 (d2tmo)
    - Galaxy S3 AT&T (d2att)
    - Galaxy S3 Sprint (d2spr)
    - Galaxy S3 Verizon (d2vzw)
    - Galaxy S3 Mini GT-I8190 (golden) by @Android-Andi
    - Galaxy S Relay 4G - SGH-T699 (apexqtmo)
    - Galaxy Express AT&T (expressatt)
    - Galaxy S4 Exynos - i9500
    - Galaxy S4 Unified Qualcomm variants (jflte): jfltecan jflteatt jfltecri jfltecsp jfltespr jfltetmo jflteusc jfltevzw jgedlte jfltexx jfltezm
    - Galaxy S4 - i9505 (jfltexx --> jfltejflte)
    - Galaxy S4 - T-Mobile (jfltetmo --> jflte)
    - Galaxy S4 - Verizon (jfltevzw --> jflte)
    - Galaxy S4 - AT&T (jflteatt --> jflte)
    - Galaxy S4 - Sprint (jfltespr --> jflte)
    - Galaxy S4 Mini i9190 (serrano3gxx), i9192 (serranodsub) and i9195 (serranoltexx)
    - Galaxy S5 International (kltexx --> klte)
    - Galaxy S5 Exynos SM-G900H (k3gxx)
    - Galaxy Mega i9205 (meliusltexx)
    - Galaxy Mega i9200 (melius3gxx)
    - Galaxy Premier i9260 (superior)
    - Galaxy Note 2 (N7100 - N7102 - N7105 (t0lte)
    - Galaxy Note 2 LTE Sprint SPH-L900 (l900)
    - Galaxy Note 2 LTE Verizon SCH-I605 (i605)
    - Galaxy Note 2 AT&T (t0lteatt)
    - Galaxy Note 2 - TMO (t0ltetmo)
    - Galaxy Note 3 LTE International - N9005 (hltexx)
    - Galaxy Note 3 T-Mobile (hltetmo)
    - Galaxy Note 3 Sprint (hltespr)
    - Galaxy Note 3 Verizon (hltevzw)
    - Galaxy Note 3 Canada (hltecan)
    - Galaxy Note 4 International (trltexx), credits @Chenglu
    - Galaxy Note 10.1 - N80xx
    - Galaxy Note 10.1 - 2014 Wifi (lt03wifi), 3G (lt03wifiue)
    - Galaxy Note 8.0 (N51xxx)
    - Galaxy Tab 2 7.0 (p31xx)
    - Galaxy Tab 2 10.1 (p51xx)
    - Galaxy Tab 3 7.0: SM-T210 WiFi (lt02wifi) - SM-T111 3G (lt023g)
    - Galaxy Tab 3 8.0 (lt01wifi, lt013g, lt01lte)
    - Galaxy Core - GT-I8262 (arubaslim) - by @ali.filth
    - Galaxy Mini (tass)
    - Galaxy Gio (gio)
    - Galaxy Fit (beni)
    - Galaxy Ace (cooper)
    - Galaxy 5 (galaxy5)
    - Galaxy 551 (callisto)
    - Galaxy Tab Pro 8.4 WiFi SM-T320 (mondrianwifi)

    Sony
    - Xperia Z (yuga)
    - Xperia Z1 (honami)
    - Xperia Z2 (sirius) - by @DooMLoRD
    - Xperia Z Ultra (togari)
    - Xperia SP (huashan)
    - Xperia T (mint)
    - Xperia ZL (odin) - by @shoey63
    - Xperia L (taoshan) by @varun.chitre15
    - Xperia M (nicki) by @icoolguy1995

    ZTE - maintained by @cooldudezach
    http://goo.im/devs/philz_touch/CWM_Advanced_Edition
    - Warp Sequent - N861 (warp2)
    - Warp 4G (warplte)
    - Awe (nex)
    - Overture (becky)
    - Imperial (apollo)
    - Source (hera)
    - Iconic Phablet (stormer)
    - Radiant (metis)

    Huawei
    - Acsend P1 U9200 (viva)

    MicroMax
    - A56/A57
    - A110Q (unofficial repack by @sukarang9)
    - A110 @bindassdost
    - A177 Canvas Juice
    - A310 Canvas Nitro by @thedevilashish

    Cubot
    - Cubot One (unofficial repack by @Maximus1a)

    OnePlus
    - One (bacon) by @acer73 and @katinatez

    Xiaomi
    - RedMi 1s (armani) by @juliusssss
    - RedMi Note 4G (dior) by @juliusssss
    - Redmi Note 3G by @EndLess
    - Redmi 2/2A/Prime by @Rohan Taneja

    Xolo
    - Opus 3 by @thedevilashish
    - A500S by @EndLess


    PhilZ Touch Features: Read POST 2 for instructions to use special functions like aroma and ors support
    • touch interface:
      - toggle between 4 touch modes: FULL TOUCH, DOUBLE TAP to validate, SEMI TOUCH (scroll but no touch validation) and NO TOUCH to only use hardware keys
      - written from scratch full touch code
      - basic scroll kinetics for faster scrolling on demand
      - safe full touch : no wrongly validations while scrolling
      - when you set full touch mode, it defaults to optimized settings for menu height, scroll sensitivity and touch accuracy (you still can alter them manually later)
      - adjust scroll sensitivity in a huge palette
      - adjust menu height in a huge palette
      - adjust touch accuracy
      - 30 color settings for each of the 8 GUI parts + 5 alpha transparency settings
      - user custom background png can be selected in addition to 30 solid colors option
      - show / hide background icon
      - show / hide bottom virtual buttons
      - show/hide + set color and transparency for menu line separators to match solid color themes, like Black...
      - set number of bottom log rows to show
      - pause on logs mode: no more miss logs during zip installs
      - auto dim screen after user configurable delay
      - auto turn off screen after user configurable delay
      - adjust brightness and turn off screen with a gesture action
      - show/hide clock and remaining battery %, even during nandroid operations
      - clock and battery stats now effectively refresh every 5 seconds and during nandroid operations
      - toggle vibrator on/off on touch
      - toggle key repeat for volume up/down scrolling when maintained pressed
      - key repeat also enabled for virtual buttons
      - set time zone + 30mn offset + DST: correct time can now be set for nandroid backup path and clock
      - capture recovery screen shots with a gesture action (only some devices)
      - basic theme support
      - one file to save all settings
      - backup and restore settings file
      - backup and restore only GUI settings
      - reset to default settings option
      - prompt to restore your settings from a backup when they are wiped by a new ROM install
      - option to auto restore your settings from a backup without a prompt
      - all toggles are applied live, without restart of recovery (except reset of stock CWM background image)
      - toggle menu options are automatically right aligned and menu text left aligned based on device display size
      - configurable gesture actions: double tap, slide right/left, long press/lift, long press/move, can be associated with any of: show log, change brightness, blank screen, capture screen shot, launch Aroma File Manager
      Note: after scroll, there is a minimal small delay (0.5 sec) to validate on next touch. This is by design and not a bug. It is there to limit erroneous validation while scrolling

    • true JB 4.2 migration: toggle between /data/media and /data/media/0
    • Secure recovery lock with passkey
    • browse phone with root access using full GUI in Aroma File Manager
    • terminal access from recovery with root access through Aroma File Manager
    • Multi Zip Install menu: check multiple zip files to install in a row
    • Custom Install Zip Mode: set a default folder to start with + browse backward up to the root
    • exFAT, NTFS and Ext4 support in recovery for external storage through kernel modules for many devices for faster write speed
    • TWRP backup and restore support, include full md5 sum support (single and multivolume, compressed and non compressed formats)
    • Advanced statistics during backup operations shown in color: total backup size, backup size progress, backup time, compression ratio...
    • support .android_secure backup/restore from external storage
    • optional reboot after custom backups/restores
    • sd-ext support (ext4)
    • nandroid backups support /preload in backup and restore jobs (custom and stock modes)
    • nandroid backups support /misc in backup and restore jobs (custom mode)
    • devs: 5 extra optional partitions supported in nandroid operations by editing recovery.fstab
    • set special nandroid settings: time zone, toggle md5 check for lightning fast backup and restore, toggle /preload backup and restore, enable nandroid compression using pigz (multi-cpu gzip compression) and choose ors backup target volume
    • recreate md5 sum check for your cwm backups for compatibility with stock CWM if you need to revert
    • cancel nandroid operation with back button
    • create custom_rom.zip from current ROM or from a pre-existing nandroid backup (based on boot, /system and optionally /preload)
    • nandroid backup path auto-renamed with current ROM id from build.prop (ro.modversion, then ro.romversion, then ro.build.display.id)
    • custom backup and restore job list: backup and restore freely any partition combo (include modem and efs)
    • backup/restore EFS in both tar + img formats, now with time tags for both tar and .img
    • support flash modem.bin image files in addition to custom modem.img files, now support for multiple *.bin versions under dedicated folder
    • during custom restore, you can see the contents of the folder you want to restore from
    • delete custom or TWRP backups from recovery menu
    • full wipe before flashing new ROM: wipe user data + format /system and /preload. SD card content is not affected
    • full support for openrecovery script specifications include all backup and restore options
    • run openrecovery scripts in 2 modes: on start goomanager boot scripts + one touch menu to either directly open a default path or freely browse for scripts
    • define ors backup target volume from within Nandroid Settings menu
    • ors backup/restore in stock clockworkmod or TWRP modes
    • advanced power options menu
    • detailed build info in About menu


    Video Teaser:
    new update soon...


    Main menu and PhilZ Settings
    image1resize.png



    GUI Preferences: all is applied live (no reboot). Up to 14 menu height settings, scroll sensitivity, touch accuracy...
    image2resize.png



    27 color settings + 5 alpha transparency levels for every GUI element
    image3resize.png



    Change background image with a custom png (of your device resolution), a solid color (27 presets) or revert to original cwm image
    image4vlv.png



    User configurable touch gestures (feel free to request for new actions)
    Setup your time-zone + 30mn offset, super wipe option to install a new ROM
    image5resize.png



    Backup and Restore any partition in a complete freedom, include modem (.img + .bin) and efs (.img + .tar)
    Custom backups can also be restored by original CWM Advanced Restore Menu
    TWRP Backup and Restore Support + md5 + single/multivolume format
    Support multi-cpu compression, md5 check toggle and custom .android_secure path
    Choose ors backup volume target
    image6resize.png



    Flash multiple zip files in a raw
    Aroma File Manager + Terminal Emulator: launch with a gesture action (double tap is default)
    image7resize.png



    Full Wipe to Install a new ROM (sdcard is preserved)
    Free Browse Mode to install zip files: select a default folder to start with and browse up to the root
    image8resize.png




    Enjoy, and do not hesitate to post feedbacks and comments



    Credits

    To ALL people who help in porting device sources and give feedback for debugging
    A special thank also to the below, and ALL who I do not mention but did contribute a lot with their efforts
    • Koush for having created and maintaining cwm
    • Cyanogenmod for making all this possible
    • Tallustus from Team Skyfire for his great support over IRC: MAJOR CREDITS
    • Dees_Troy from TWRP team for pigz source and many great ideas in their recovery + source for backups compatibility
    • Chenglu for his unpacking tools and porting i9505: Huge credit
    • kbc-developers for the base semi-touch code and much more
    • [email protected] for his great job / support
    • sk8erwitskil for his recovery source, a great place to start learning
    • shoe63 for his help from the start across many devices
    • DooMLoRD for his work and help with Sony
    • [NUT] for his ports to Sony
    • wanam for compiling sensors-free kernels for N71xx/i317M, i9500 and i9505 to fix boot delay for custom kernels, exfat support and much more
    • dougiebee for his work on fixing time on many Qualcom devices
    • ausdim for all the support in developing kernels for i9505
    • dr.ketan for his precious help in porting to the N7000 & N7100 (I don't own one) and all the support in threads
    • Chainfire for his support (stock recovery flash) and all his work for the Android community

    XDA:DevDB Information
    PhilZ Touch - Advanced Clockworkmod, Tool/Utility for the Android General

    Contributors
    Phil3759
    Source Code: https://github.com/PhilZ-cwm6/philz_touch_cwm6


    Version Information
    Status: No Longer Updated

    Created 2014-03-29
    Last Updated 2016-01-05
    284
    Developers info: ** New: you can now build full version from my git sources **
    You can also try to get support on IRC on freenode: #PhilZ-Touch (thanks @Bhargav97)

    You can fetch source from this link (cm-11.0 branch):
    https://github.com/PhilZ-cwm6/philz_touch_cwm6


    I no longer maintain the older branches
    Before you start, make sure you can build stock cwm from cm-11.0 source
    Once you can build stock CWM, just replace your bootable/recovery folder with this one and lunch for your device


    Device tree changes examples:
    They are minimal and detailed below
    You can see a few examples from here:
    device tree: https://github.com/PhilZ-cwm6/philz_touch_cwm6_device_vendor/tree/cm-11.0
    vold exfat/ntfs/f2fs kernel support: https://github.com/PhilZ-cwm6/android_system_vold/tree/cm-11.0
    selinux extensions for extra partitions: https://github.com/PhilZ-cwm6/android_external_sepolicy/tree/cm-11.0

    To avoid modifying BoardConfig.mk and device.mk for all devices I support, I modified the build makefile:
    https://github.com/PhilZ-cwm6/android_build/tree/cm-11.0


    Those are the only optional changes to get all features of this recovery mod.
    To use f2fs/exfat/ntfs kernel support, you should learn how to modify the kernel too. Else, skip the vold changes and flags (see below details)


    Optional PhilZ Touch extra flags:
    The below info are optional. You should still be able to build without editing anything in device tree
    1. bootable/recovery/boardconfig/BoardConfig.mk
      It is a quick mode to add device specific tags without altering device tree. That way I can spot needed changes easier.
      Code:
      # Info on some tags:
      
      - KERNEL_EXFAT_MODULE_NAME: This will force minivold to use much faster kernel modules instead of slow fuse
      it will only work if you have modified vold sources (contact me for info)
      you'll also have to copy modules to ramdisk and load them in init.rc or a loader script
      you need either an exfat enabled prebuilt kernel or to compile exfat modules along kernel
      you also need to patch minivold: [url]https://github.com/PhilZ-cwm6/android_system_vold[/url]
      
      - KERNEL_NTFS_MODULE_NAME: 
        Same as above, but for ntfs.
      
      - TARGET_USERIMAGES_USE_F2FS := true
              will enable f2fs support and ext4 <-> f2fs conversion and backup migration
              obviously you need to add f2fs support into the kernel
              read about the extra.fstab use to use specific and distinct f2fs and ext4 mount options
              else, it will drop to bare minimal ext4 or f2fs mount options if not defined in recovery.fstab
      
      - BOARD_USE_MTK_LAYOUT :=   true
              will enable backup/restore of boot, recovery and uboot partitions on MTK devices
      
      - BOARD_MTK_BOOT_LABEL :=   "/bootimg"
              This flag is optional, it is used only if BOARD_USE_MTK_LAYOUT is defined
              If not defined while previous flag is enabled, default boot label is assumed "/bootimg"
              Else, it is assigned the defined value
              In fstab.device used by recovery (recovery.fstab), boot mount point must be the same as what we
              define in label
              It is also mandatory that it is defined to real device label (cat /proc/dumchar_info)
              Partition size is grabbed during backup/restore from /proc/dumchar_info
              uboot label is defined as "/uboot". It is automatically backed-up/restored with boot and recovery
              recovery label is always assumed to be "/recovery"
      
      - BOARD_HAS_LOW_RESOLUTION:
        (optional) for all devices below 1024x768 resolution.
        it forces default touch sensitivity to a lower value. It can be altered in GUI Settings
      
      - BOOTLOADER_CMD_ARG:
        This will override ro.bootloader.mode. Mostly used for Samsung devices to access download mode
      
      - TARGET_COMMON_NAME
        The device name that will be displayed on recovery start and in About dialogue
      
      - BRIGHTNESS_SYS_FILE:
        Needed to be able to alter screen brightness
      
      - ro.cwm.backup_partitions:
        this can be set on boot or during compile into default.prop. exp in device.mk:
        PRODUCT_PROPERTY_OVERRIDES += \
            ro.cwm.backup_partitions=/modemst1,/modemst2,/devlog
      
        it will add support to backup/restore those partitions in nandroid custom jobs provided they are also defined in recovery.fstab

    2. device/brand/phone_name/device.mk
      Code:
      PRODUCT_COPY_FILES += \
          $(LOCAL_PATH)/rootdir/etc/extra.fstab:recovery/root/etc/extra.fstab

    3. extra.fstab documentation:
      * Needed until fs_mgr_read_fstab() starts to parse blk_device2 entries
      * extra.fstab sample:
      Code:
      # add here entries already existing in main device fstab, but for which you want a blk_device2, fs_type2 or fs_options2
      # mount point must be the same, mmcblk device must be your device true path
      # you can set the f2fs mount options for partitions you want to be able to toggle between f2fs/ext4
      # it will enable faster transfer speed for devices supporting usb mount storage
      # makes it possible to partition vold managed storage (sdcard/usb disks) and format it to ext2/ext3
      # used also to stat for size of mtd/yaffs2 partitions
      
      # blk_device2           # mount_point           fs_type2    fs_options2     flags (not used in extra.fstab code)
      /dev/block/mmcblk0p28   /storage/sdcard0 	auto	    defaults		defaults
      /dev/block/mmcblk1p1	/storage/sdcard1 	auto	    defaults		defaults
      /dev/block/sda1		/storage/usbdisk0 	auto	    defaults		defaults
      /dev/block/mmcblk0p30		/data		f2fs      [options] 	[flags]

    If it doesn't build or errors, post log/error here and I will help if I can


    Adding Full PhilZ Touch version support for your device
    • Compile for your device by replacing bootable/recovery contents with files from my git
    • Set the needed options in bootable/recovery/boardconfig/BoardConfig.mk
    • It is very important to set the correct options so that libtouch_gui can be initialized properly
    • Optional: you can add your signature here, but do not remove other About ui_prints please, keep credits
      https://github.com/PhilZ-cwm6/philz_touch_cwm6/blob/cm-11.0/advanced_functions.c#L3328
    • post a link to your thread or attach your recovery.img here and I will upload them to goo.im and main OP for official support
    • If you have errors, bugs or need a specific feature for your custom kernel, just let me know by PM
    • If errors are related to libtouch_gui, try to disable the PHILZ_TOUCH_RECOVERY flag here by adding a #
      https://github.com/PhilZ-cwm6/philz_touch_cwm6/blob/cm-11.0/Android.mk#L6
      Then, post here your error log when compiling


    Missing sources in my github:
    none, it is all open source now
    - all gui options, include touch code
    - Create Update.zip from current ROM or from pre-existing backups
    - However, they are all enabled through the new libtouch_gui library. Just set your flags and compile it



    Will libtouch_gui sources published?
    They are open source now
    Not for now. Why?
    Answer: in this post


    Can I include and use your libtouch_gui in my recovery mod ?
    You are welcome, but:
    - do not reverse code
    - do not binary edit it
    - add credits in your code
    - do not remove credits headers from sources and give proper credit in your thread site
    - post a link to this thread on your site/thread
    - push fixes to my github if you find bugs that you fix or if you add new features
    262
    How to Install

    This will depend on your device. Please look first for help in your device specific thread.
    Provided instructions here ARE NOT VALID for all phone

    Recovery (.zip) packages instructions
    They come in the form of .zip files that can be flashed in cwm recovery
    • Download philz_touch_xxx.zip file
    • Put the previously downloaded philz_touch_xxx.zip file on your sd card
    • Boot into recovery (volume up+home+power)
    • Select "Install zip" and browser to your downloaded zip file.
    • Now select the philz_touch_xxx.zip fileyou copied in previous step
    • You will have PhilZ Touch Recovery flashed


    Odin packages instructions: Samsung Only
    They come in the form of .tar.md5 file
    • boot into download mode
    • start odin3 and configure it as in picture below
    • connect phone in download mode to PC via USB
    • press start to flash the tar.md5 package
    • normally, phone should auto-reboot into recovery.
      If it reboots into main system and your recovery remains stock, repeat above steps and untick "autoreboot" in odin. Once flash is done, keep pressing the 3 buttons combo to for a reboot into recovery.You should see the new CWM
    • when in recovery, if you choose option "reboot system now" and you get "yes - disable flash recovery", select that option to avoid stock recovery overwriting cwm
    • to remove yellow triangle, use TriangleAway

      image272j.png



    Root your phone and reset Yellow Triangle
    coming....
    245
    PhilZ Touch Quick Guide
    It is based on Koush clockworkmod 6.x to which I added many features and a full reliable touch interface
    It brings a true touch and scroll interface, fully customizable GUI, theme support, advanced nandroid options and much more


    How to select your .android_secure path
    • In Custom Backup and Restore operations, you can select the target/source for android.secure or disable it
    • In stock backup/restore operations, include those started with ROM Manager, you can also force a target/source for .android_secure
    • basically, recovery will check first external storage for a .android_secure folder. If it doesn't find it, it will look in internal storage
    • If you want for example .android_secure to be in internal sd, just delete .android_secure folder from external sd and ensure there is a .android_secure folder in internal sd
    • for external sd, just ensure there is a .android_secure folder in it. It will be chosen what ever is the internal sd state



    Custom Backup and Restore menu

    • This is one of the most powerful features of this recovery.
      It is made completely open source code, built from sratch. Just keep credits headers and give proper credit if you use them
    • You can select which partitions you want to backup or restore
    • You can choose your .android_secure source and target or even disable it
    • You can set it to reboot directly after job is done
    • backups will go under the folder clockworkmod/backup (please move all contents of custom_backup folder used in previous versions to the default backup folder in cwm)
    • TWRP backups go under stock TWRP/BACKUPS/device_id folder and will be automatically recognized by TWRP
    • Custom Restore Menu allows you to restore from any of the stock clockworkmod backups, the custom backups or the TWRP backups
    • efs is backed up under clockworkmod/backup/.efs_backup
      - efs must be selected alone for backup in cwm mode
      - it will create 2 copies: a tar and raw img backup using cat/dd command
      - to restore efs, under Custom Restore menu, select efs only and toggle between tar and .img
      - restore .img format is advised, but tar will work under most circumstances
    • modem.bin files can be named any_thing.bin and must go under clockworkmod/backup/.modem_bin
      - with that, you can flash modem.bin files that come with official firmware (may need unlocked devices for some models)
    • if you disable md5, your backups will no more be recognized by stock cwm builds. Look at next step to regenerate md5 for stock cwm compatibility. Otherwise, all stock and custom backups are backward compatible with stock cwm (except special partitions like preload, recovery, modem and efs which stock cwm doesn't support)
    • you can now recreate md5 sum for any backup you want. Use with caution!



    Open Recovery Script Support (ORS): revised and adapted from original sk8erwitskil source
    • On start, recovery looks automatically for "/cache/recovery/openrecoveryscript" installed by goomanager or any tasker. If it finds it, it is run and phone will reboot
    • You can also add custom ors scripts you edit your self:
      When pressing the ors menu, it will look at default locations for your custom scripts:
      "clockworkmod/ors" first in extra storage, then in internal sd. Put your custom scripts there with file extension .ors
      That way you can access your jobs (flash, wipe, backup, restore...) instantly
      If no scripts are found in default folder, you get option to browse both storage volumes for a custom location
    • To learn how to write ors scripts to automate your backup/restore/wipe/flash tasks, read here, it is very easy: http://wiki.rootzwiki.com/OpenRecoveryScript
    • Give Goomanager a try
    • All backup and restore options are supported include special partitions 1, 2 and 3 and even extra 4 and 5 partitions (could add modem, efs and preload linked to them later)
    • /preload will be included with /system if you enabled the /preload option in Misc Nandroid Settings
    • you have an extra here: you can set the target volume for ors backups under Misc Nandroid Settings menu
    • ors backups can be set to either TWRP or CWM format



    Aroma File Manager Support *Adapted from amarullz and sk8erwitskil
    You get here the possibility to browse your phone with root access in a friendly GUI file browser, while being in recovery
    You even now get a terminal emulator to run in recovery
    • Download Aroma File Manager from its Home Page
    • Get the last version and rename the file aromafm.zip
    • Put the aromafm.zip in "clockworkmod/aromafm/aromafm.zip" in any of the storage volumes
    • In recovery, tap the Aroma File Manager menu or double tap any part of the screen outside menus
    • It will launch the file manager automatically
    • Double tap gesture linked to Aroma File Manager can be altered in the GUI Settings menu



    Touch GUI Preferences:
    This is another unique feature of this recovery and is built from scratch
    • You can toggle through 4 touch modes:
      Full Touch: menus are validated by touching them. I added extra checks to make it robust to validation by error while scrolling.
      Double Tap: menus are highlighted on first touch. To validate action, you need to double tap the same menu
      Semi Touch: the classic semi-touch interface I enhanced. Menus are selected/highlighted on first touch. You can scroll by swiping up/down, but no validation on touch.
      Disable Touch: touch code completely disabled. You have all gui options left, but only hardware keys
    • When Full Touch mode is selected, it will automatically set recommended menu height, touch accuracy and scroll sensitivity. You can alter them later if you want
    • Scroll sensitivity controls scrolling on swipe up/down. Lower values are the most sensitive. Adjust this based on selected menu height
    • Touch accuracy: increase it if your touch gestures are not well accounted for
    • Config files are saved in /data/philz-touch/philz-touch_x.ini file.
    • You can do a backup of your settings file, it will go under /sdcard/clockworkmod/philz-touch.ini.bak
    • You can choose to be prompted to restore your settings whenever they are wiped while you have a backup. You can also set recovery to auto-restore them when needed. This check is done when you reboot to main system from within recovery
    • There are many gesture actions that you can setup at your wish (some default actions are setup by default)
    • Long press/move is the bad equivalent to a long press gesture action: just that after 0.6 sec of touch, slightly move your finger or change the pressure surface without actually lifting it
    • Your screen should auto-dim automatically after one minute and turn off after 3 mn. You can change those time settings. Just touch the screen to reset brightness and turn it on (some devices need to press hardware button)
    • All GUI parts can be customized: menu hight, text colors, menu colors, selection colors, background color and icon, menu seprators, battery and clock, header text...
    • To setup a custom background image: put a png image with your device resolution in a folder clockworkmod/custom_res
    • You can take screen shots from recovery display by the slide left gesture (change it at your wish). Pics captures will go under clockworkmod/screen_shots folder. External storage will be always used first. If no external storage is found, internal storage is used. You can take up to 999 pics before it resets to 1



    Setup Free Browse Mode and Multi-zip Installer:

    Free Browse Mode:
    • You can setup a default folder from where the Install Zip menu will start
    • From within your set default folder, you can now browse backward up to the root file system to install a zip file
    Multi-zip Installer menu:
    • Lets you select multiple zip files to flash at the same time
    • The zip files must go into a subfolder under: "clockworkmod/multi_flash"
    • At least one subfolder with your zip files must be created. You can create as many subfolders as you want
    • exp: clockworkmod/multi_flash/NEAT_ROM_files



    Pause on Logs:

    • Pause on Logs: when enabled, after flashing a zip file or doing a nandroid job, you will be prompted for a key to return to menu display. That way, logs are kept in full screen. Obviously, no pause will be performed on boot scripts and multi-zip operations
    137
    Full Change History
    Change log is now here:
    https://github.com/PhilZ-cwm6/philz_touch_cwm6/commits/cm-11.0

    Older history in next post


    6.48.4 (06.07.2014)
    - merge multi stage install packages support from AOSP
    - CWM 6.0.5.0

    6.48.1 (30.06.2014)
    - add option to directly parse time_daemon data files
    - refresh current time in menu header after time daemon fixes
    - fix first passkey prompt screen did not show proper background under some circumstances
    - libtouch_gui 1.30

    6.47.7 (25.06.2014)
    - preserve background icon user settings after sideload, install zip and wipe actions
    - use real fstype instead of auto in /etc/fstab when converting between ext4 <-> f2fs using extra.fstab
    - libtouch_gui 1.29
    - LG G2 variants: enable performance mode in recovery (device tree)
    - HTC One Mini (m4): enable f2fs and exfat kernel support
    - Galaxy S5 LTE (klte): enable backup/restore of /efs, /modemst1 and /modemst2 partitions

    6.47.6 (24.06.2014)
    - recovery lock: support use of virtual / capacitive keys as pass key
    - libtouch_gui 1.28

    6.47.4 (23.06.2014)
    - fix adb was disabled when no recovery lock passkey was setup
    - Galaxy S3 D2 variants: enable f2fs support

    6.47.3 (20.06.2014)
    - add recovery lock with passkey on start
    - better extra partitions support in custom nandroid operations
    - fix segfault during shell nandroid backup/restore commands
    - enable progress display during "adb shell nandroid backup/restore" commands
    - enhance and fix bugs of progress display during install/nandroid... operations
    - nandroid restore: fix progress bar animation when md5 verify is enabled
    - nandroid md5: fix progress bar was not reset for each file
    - nandroid md5: fix .android_secure md5 sum was never generated or checked
    this could cause md5 check to fail under some circumstances
    - limit logging to console in adb shell nandroid and mount commands
    - fix detection of real fstype (pointer to in the scope char array bug)
    - merge: "Only chmod backup/blobs directory if it exists"
    - merge: "Enable cmdline nandroid backup of vold volumes"
    - disable useless sd-ext warnings and errors
    - merge loki updates
    - f2fs <-> ext4 conversion: support fs_options2 through extra.fstab before dropping to bare minimal options
    - clean up code
    - libtouch_gui 1.26

    6.43.8 (02.06.2014)
    - fix recursive path creation bug for /data/media/0
    - f2fs: do not try f2fs recovery.fstab mount options on an ext4 partition
    - f2fs: do not redefine default recovery ext4 mount options when migrating from an f2fs recovery.fstab
    - f2fs: error message when converting unsupported file systems
    - fix Galaxy Mega variant background resolution

    6.43.5 (01.06.2014)
    - default to /data/media/0 unless we define BOARD_HAS_NO_MULTIUSER_SUPPORT
    - use lstat to check if file exists

    6.43.4 (01.06.2014)
    - fix text print colour could persist after md5 check

    6.43.3 (31.05.2014)
    - fix f2fs conversion of /data on /data/media devices
    - allow ext4 <-> f2fs backup data migration in nandroid
    - cleanup code

    6.43.0 (30.05.2014)
    - nandroid backup: fix 'media' exception:
    In CWM, a bug present from the begining was preventing any path/file named media from backup on /data/media devices
    This fix will only exclude /data/media path and not other media files/folders

    6.42.9 (30.05.2014)
    - default again to libtar for backup/restore

    6.42.7 (30.05.2014)
    default to busybox tar:
    - use busybox tar by default as it now supports selinux context backup/restore
    - unify libtar and busybox tar options (-p for selinux context)
    - remove now deprecated external selinux container code

    6.42.5 (30.05.2014)
    - f2fs: recreate /etc/fstab after ext4/f2fs conversion for proper use of system mount command
    - comment useless dead code

    6.42.4 (30.05.2014)
    - f2fs: fix nandroid restore to f2fs partitions
    - f2fs: support format extra storage to f2fs (vold patch needed)
    - f2fs: support switching between f2fs/ext4 (needs f2fs in kernel modules), thanks @KumaJaya
    - f2fs: reload volume table after f2fs/ext4 conversion (no reboot needed after conversion)
    - f2fs: do not format whole /data when not expected on /data/media devices
    - f2fs: allow /data f2fs/ext4 conversion for non data_media devices

    6.41.8 (26.05.2014)
    Preserve recovery settings after a wipe
    - on settings change, create a second copy of recovery settings on primary storage (/sdcard)
    - on recovery exit, always copy recovery settings to sdcard if no copy is present
    - after a wipe, on recovery exit, try to restore settings from the copy on primary storage
    - fix save/restore settings menu labels
    - libtouch_gui 1.22

    6.41.6 (12.05.2014)
    - update exfat to dorimanx 1.2.9 latest sources
    - fix compile error when enabling BOARD_RECOVERY_USE_BBTAR
    - repo sync latest sources
    - Galaxy Tab Pro 8.4 WiFi SM-T320 (mondrianwifi)
    - HTC M7 variants: use new cm kernel with exfat sources
    - HTC M8 variants: use new unified recovery

    6.41.5 (11.05.2014)
    - libtouch_gui 1.21: auto detect BRIGHTNESS_SYS_FILE path if it is not set during compile
    * search for the file in most common locations
    * if found, save it to recovery settings ini file to be called on next recovery starts
    * else, disable adjust brightness function to avoid error logs on recovery start
    - fix various compiler warnings and errors
    - enhance pre-compile setup
    - dedupe: merge clean up code from @xiaolu
    - merge: fix restorecon_from_file potential crash from @xiaolu (only for BOARD_RECOVERY_USE_BBTAR)
    - fix 240x320 images
    - merge "cwm: Honor recovery variant "
    - merge "cwm: Remove hardcoded paths"
    - merge "Keep 'show log' on screen until user dismisses it"
    - create /data/media directory after internal storage is wiped
    prevents denial to read/write from internal storage under some circumstances
    - open source touch_gui library
    - update licence files

    6.40.1 (03.05.2014)
    - proper libtar implementation: support backup/restore of selinux context inside archive
    - dedupe: support backup/restore of selinux context by @Chenglu
    - libtouch_gui 1.20: support custom key files (BOARD_CUSTOM_RECOVERY_KEYMAPPING)

Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone