Related
[Size=+2]A500 Public Recovery v0.2 based on Koush's CWM v5.5.0.4[/Size]
Here is a new Clock Work Mod for the ICS unlocked bootloaders only.
Features:
* cleanup tab option: shortcut to try to fix forcequits after updates, return to recovery and select on the main screen (Wipes Cache, dalvik, and fixes permissions)
* Standard options to backup and restore to either the SD card or internal storage
* Mount points match those of most running roms
* adb shell works as root (with or without system mounted)
* set boot mode menu to select the boot partition (hidden on know non-multiboot bootloaders)
* setbootmode and itsmagic command line tools for advanced users
* /data/linux directory is not deleted on erase userdata, nor backed up on nandroid backup (just like /data/media) to allow a space for linux files for dual boot and chroot linux installes.
While there may not be much fantastic yet about the recovery it appears funcitonal at this point. (Features such as touch ui may appear in the future)
Why is it called Public: its public in the sense that all the scripts and code required for anyone to build it have been made avalible. (note some linux knowledge may be needed to build it yourself)
[Size=+2]Installation[/Size]
There are to main ways to install
1) using fastboot or nvflash you can install the image
A500PubRecovery_v0.2.img MD5: 0e40a494cd066b1c8e1a8d01493f1452
2) using a any exiting recovery (as long as you have one of the unlocked bootloaders) you can install with an update.zip
A500PubRecovery_v0.2_update_S.zip MD5: 349d0d6284fc6d1e071827a37a8a55e5
** (FYI the fastboot command to run on your computer is 'fastboot flash recovery A500PubRecovery_v0.2.img')
[Size=+2]Developers Additional Information:[/Size]
Build instructions (including how to fetch the source code) is here:
https://github.com/ezterry/AcerRecovery/blob/recovery_manifest/README.mkdn
(Thanks yous/Credits are also included)
Kernel:
as of version 0.2 the kernel is built from source (see above for information on fetching the build tree including the linux kernel)
the kernel in v0.1 was a patched for system r/w acer ICS Stock kernel
additional information can be seen on the commit:
https://github.com/ezterry/AcerRecovery/commit/402da6f73e752e80312318e177035ee02e4fbf89
The biggest thanks is as manythings in the Android World to Koush, and the CyanogenMod team. (They did the hard part, I've just tweaked it for the A500 configuration)
[Size=+2]Version List[/Size]
v0.2:
A500PubRecovery_v0.2.img 0e40a494cd066b1c8e1a8d01493f1452
A500PubRecovery_v0.2_update_S.zip 349d0d6284fc6d1e071827a37a8a55e5
v0.1:
A500PubRecovery_v0.1.img 4414bdbdd3aa7b7d7d1166595e6ccb2a
A500PubRecovery_v0.1_update_S.zip f45e7e3b640b42a68ec9bb08bd4b88ce
for details on the source commits used in the builds please see:
https://github.com/ezterry/AcerRecovery/blob/recovery_manifest/VERSIONS.mkdn
I will put it in the guide ,so when you flash the unlocked boot loader you can chose to install this with it , the more options for the user the better.
Thanks for the hard work.
Awesome !!! im curious to look at source so thanks for this
Sent from my SCH-R760 using XDA
btw,
The a501 is a very similar device.. is some more advanced user wishes to test things out and let me know if and changes is needed or if its good as is (fastboot boot may be useful if you wish to boot it without actually saving it to the tab)
Other Acer devices probably need slight modifications, if you help I can look into adding it to the codebase/builds..but I can only test the a500 as it's the only tab I own.
Just try to make sure you have a link to the source code of any kernel..and failing that that it Lisa stock kernel from an official OTA image.
I have a A500 with the Build.Number "1.033.00_EMEA_DE".
I have Problems to get the CWM with that Tutorial:
http://www.brutzelstube.de/2012/acer-iconia-a500-mit-android-4-0-ics-rooten/
Its all running fine but when i want to boot into the CWM it seems to work but then the Android Guy with open Stomach and the Red ExclamationPoint is showing.
I wonder if i can use this Public Recovery v0.1??
Maybe someone can help me that.
Basian Mile said:
Its all running fine but when i want to boot into the CWM it seems to work but then the Android Guy with open Stomach and the Red ExclamationPoint is showing.
Click to expand...
Click to collapse
If you are running a stock ICS rom you need to make sure you don't have the recovery patch still installed, otherwise the stock recovery will be installed on reboot if any other recovery is installed.
If you have the script and patch.. this recovery as any other custom recovery will be overwritten.
Sent from my Galaxy Nexus using Tapatalk 2
The CWM (v5 from Thor2002ro) is running now. I was using the wrong CPUID. That was my falut. But now its ok.
So i can flash this new Recovery just in this right?
If you have one of the the unlocked ics bootloader you can flash this recovery.. either directly or with the update.zip from a working custom recovery.
Sent from my Galaxy Nexus using Tapatalk 2
Great Job!
If you want to build an A510 version, just change the data partition to point to /dev/block/mmcblk0p10. Everything else stays the same. If it doesn't boot, i may need to have the A510 recovery kernel.
BTW.. the recovery kernel doesn't really need to be patched for r/w, because /system never gets mounted as readonly, so it never does a remount to r/w. I've repacked recoveries with stock ICS kernels and they work fine. == Although, it doesn't hurt to patch them. ==
Euclid's Brother said:
BTW.. the recovery kernel doesn't really need to be patched for r/w, because /system never gets mounted as readonly, so it never does a remount to r/w. I've repacked recoveries with stock ICS kernels and they work fine. == Although, it doesn't hurt to patch them. ==
Click to expand...
Click to collapse
Part of it is I intend the kernel for my own ics rom. (Safer anyway in my opinion to not find any surprises as a user but not the biggest issue)
Tested it and installed fine , it's barebones recovery but I think A lot will love it , clean and simple. I used fastboot to install it .
Thanks Ez.
BTW I'm working on the next release
1) Some minor bug fixes (partitioning sdcard and full wipe are a bit strange at present.. in most cases we don't re-partition sdcards.. and wipe if you are installing a rom after will fix its self)
2) Now that acer has released their source, I've dropped the pre-built tweaked stock kernel, and added a source build, mostly still stock but I've changed to lZMA to allow some more space for the recovery ramdisk. (also system remount is allowed by default in this kernel so no postbuild acrobatics .. ie KPatch script)
3) add setbootmode/itsmagic binaries to the system. A500 (this is in github as is the kernel so building from synced source will give you a recovery with these pre-installed)
4) hopefully add an interface to call said binaries
Also I have an A510 test version I need someone (with the tab) to try.. PM me
Edit (Feature Idea):
whould anyone be interested in recovery when wiping not only skiping /data/media (internal /sdcard) but also skiping /data/linux ?
The idea is dual boot people bootling linux could use a ramdisk to run some bindmount/piviot root hackery to make /data/linux the root directory
also anyone using chroot to run a linux distro along side android could use the /data/linux directory as the chroot jail
let me know and I'll look into making APR here support such a feature
Is it posible to add app cwm for install.zip,backup,restore since rom ?
For exemple,the same app into sgs2 with siyha kernel or another kernel ??? Big thanks
Envoyé depuis mon A500 avec Tapatalk
ezterry said:
3) add setbootmode/itsmagic binaries to the system. A500 (this is in github as is the kernel so building from synced source will give you a recovery with these pre-installed)
Click to expand...
Click to collapse
Ehm, definitely don't put itsmagic next to setbootmode, it corrupts the kernel image in AKB.
ezterry said:
Edit (Feature Idea):
whould anyone be interested in recovery when wiping not only skiping /data/media (internal /sdcard) but also skiping /data/linux ?
The idea is dual boot people bootling linux could use a ramdisk to run some bindmount/piviot root hackery to make /data/linux the root directory
also anyone using chroot to run a linux distro along side android could use the /data/linux directory as the chroot jail
let me know and I'll look into making APR here support such a feature
Click to expand...
Click to collapse
Yeah I'm actually thinking to install linux to /data/linux and chroot there, too, exactly the same way.
micky387 said:
Is it posible to add app cwm for install.zip,backup,restore since rom ?
For exemple,the same app into sgs2 with siyha kernel or another kernel ??? Big thanks
Click to expand...
Click to collapse
I'm not exactly sure what you are talking about,
If you want to use this recovery with RomManager (as an unofficial 3.x+ recovery) you may. (In rom manager select flash recovery, select a500, select that you have manually installed a CWM recovery, select 3.x) To make it "official" koush needs to update his repo.. and I'm not going to poke that until I fix some minor outstanding bugs.
Actions will by default happen on the /data/media partition (as that is usually /sdcard) and no roms are yet in the system.. but I may work on fixing that after I make the next release. Currently running a backup myself.
If you want some other app to do this.. it needs to be compatible with the clockwork mod API.
Skrilax_CZ said:
Ehm, definitely don't put itsmagic next to setbootmode, it corrupts the kernel image in AKB.
Click to expand...
Click to collapse
next to as in both the "itsmagic" and "setbootmode" binaries are in /sbin? .. I hope you can live with that.
I don't intend to automatically run it *ever* in this recovery, just want it to exist for anyone cleaning the system to return to a HC bootloader.. probably won't even add it to the GUI as its not something you want to do by mistake (and really I don't want to promote anyone to do.. its just there for some advanced users doing advanced operations). Boot mode however will be in the gui.
ezterry said:
next to as in both the "itsmagic" and "setbootmode" binaries are in /sbin? .. I hope you can live with that.
I don't intend to automatically run it *ever* in this recovery, just want it to exist for anyone cleaning the system to return to a HC bootloader.. probably won't even add it to the GUI as its not something you want to do by mistake (and really I don't want to promote anyone to do.. its just there for some advanced users doing advanced operations). Boot mode however will be in the gui.
Click to expand...
Click to collapse
Very clever... i was worried myself at first when i saw you mention itsmagic... i'm so happy we have an open bootloader now with no tricks... oh, except the original hacking
Thanks so much for your work on this!
ezterry said:
I'm not exactly sure what you are talking about,
If you want to use this recovery with RomManager (as an unofficial 3.x+ recovery) you may. (In rom manager select flash recovery, select a500, select that you have manually installed a CWM recovery, select 3.x) To make it "official" koush needs to update his repo.. and I'm not going to poke that until I fix some minor outstanding bugs.
Actions will by default happen on the /data/media partition (as that is usually /sdcard) and no roms are yet in the system.. but I may work on fixing that after I make the next release. Currently running a backup myself.
If you want some other app to do this.. it needs to be compatible with the clockwork mod API.
next to as in both the "itsmagic" and "setbootmode" binaries are in /sbin? .. I hope you can live with that.
I don't intend to automatically run it *ever* in this recovery, just want it to exist for anyone cleaning the system to return to a HC bootloader.. probably won't even add it to the GUI as its not something you want to do by mistake (and really I don't want to promote anyone to do.. its just there for some advanced users doing advanced operations). Boot mode however will be in the gui.
Click to expand...
Click to collapse
OK.
I want to know if it's possible to add the same app (a part of recovery)
Thanks
ezterry said:
next to as in both the "itsmagic" and "setbootmode" binaries are in /sbin? .. I hope you can live with that.
I don't intend to automatically run it *ever* in this recovery, just want it to exist for anyone cleaning the system to return to a HC bootloader.. probably won't even add it to the GUI as its not something you want to do by mistake (and really I don't want to promote anyone to do.. its just there for some advanced users doing advanced operations). Boot mode however will be in the gui.
Click to expand...
Click to collapse
Yeah that's ok, I meant next to as in GUI, that would bring only problems.
v0.2 is out (see op)
Bugfixes:
~ wipe full data fix
~ fix on formating the external sdcard
~ cleaned up some warnings
Features:
~ added multiboot support (select boot partition)
~ added itsmagic binary (command line only)
~ switch to kernel source build rather than pre-built kernels
~ added /data/linux support (skip on wipe data, and nandroid backup)
kernel was built from:
https://github.com/ezterry/AcerTabKernel/commit/a6312764aa19ea7fe581b9931723c206a12b11ef
config file: apr_a500_defconfig
besides the configuration the kernel source is thus far unchanged from the acer a500 ICS drop
The kernel is built along with the recovery, see developer notes in OP for a link to the build instructions.
v0.2 doesn't boot for me.
Using Skrilax v6 bootloader I can't boot v0.2 while v0.1 works fine, both flashed from fastboot.
I also tried flashing v0.2 from v0.1 recovery, same results.
Always wanted a larger /data partition? Want to add a swap partition or an extra partition for your Debian/Ubuntu/Fedora chroot? Want your ROM to have the combined /data and /sdcard of Honeycomb and ICS devices? Then this guide is for you.
Table of contents
This post: background information
(Advanced) users: modifying your phone to use LVM
Developers: adding LVM support to a ROM
Building LVM for Android
The Linux [URL="http://sourceware.org/lvm2/]Logical Volume Manager[/URL] (LVM) is a set of tools which allows you to create virtual disks ("logical volumes", "LVs") backed by a set of real storage devices ("physical volumes", "PVs") organized into "volume groups" ("VGs"). Using LVM, you can:
Create logical volumes which are larger than any of the individual physical volumes available on your device's real storage.
Create an arbitrary number of logical volumes of arbitrary size, regardless of the number of physical volumes or partitions available on your real storage devices. You could, for example, add a dedicated swap partition, or create a separate /system and /data for a dual-boot setup.
Take a snapshot of a logical volume -- a copy of the LV which only stores differences between it and the original (requires additional kernel support). You could, for example, take a snapshot of the external storage LV and export it via USB mass storage to a computer, without needing to unmount the LV from your device.
Grow or shrink logical volumes without unmounting the file system ("online resize", requires filesystem support).
LVM was developed to manage storage on Linux servers and workstations, but was also used by Palm/HP in WebOS devices. It uses the Linux device-mapper technology used in Android for apps installed on the SD card, so any Android kernel will work with LVM.
This guide was developed with the Nexus S in mind, but the technique described should be applicable to many other Android devices as well.
Modifying your phone to use LVM
WARNING WARNING WARNING
While unlikely, you could brick your phone if you do this incorrectly!!!
Read this guide completely before attempting. If you don't understand the procedure, read it again until you do. If you still don't understand, wait for someone else to make this easier. If you're not sure you understand, you probably don't.
BACK UP EVERYTHING ON YOUR PHONE, INCLUDING THE CONTENTS OF /sdcard, BEFORE ATTEMPTING THIS PROCEDURE! This will erase everything on your phone.
The preassembled images attached to this post are for Nexus S GT-i9020T running stock Android 4.0.4 IMM76D ONLY. They may or may not work with other phones and ROMs. (See the next post for how to modify any ROM to use LVM.)
You will need:
A Nexus S with unlocked bootloader
A computer with fastboot and adb installed and working
A USB cable
Factory images for your phone, in case something goes wrong
Procedure:
Take a nandroid backup of your phone and copy it to your computer. We'll use it to restore the ROM later. You MUST copy the backup to your computer! This procedure will erase EVERYTHING on your phone, including the contents of /sdcard.
Download the boot and recovery images attached to this post. Reboot your phone into the bootloader, then flash the recovery to your phone using fastboot:
Code:
fastboot flash recovery recovery-lvm-clockwork-5.0.2.0-crespo.img
(GPL information: this is the stock kernel image from ClockworkMod 5.0.2.0. For LVM source, see this post.)
Boot into recovery.
Enter the shell on the device:
Code:
adb shell
In the shell on the device, do the following (# is your prompt):
Code:
# /lvm/sbin/lvm pvcreate /dev/block/mmcblk0p1 /dev/block/mmcblk0p2 /dev/block/mmcblk0p3
# /lvm/sbin/lvm vgcreate lvpool /dev/block/mmcblk0p1 /dev/block/mmcblk0p2 /dev/block/mmcblk0p3
This marks the partitions normally used for /system, /data, and /sdcard for use with LVM, and creates an LVM volume group named "lvpool" using those devices.
In the shell on the device, set up your desired logical volumes (partitions).
Code:
# /lvm/sbin/lvm lvcreate -L 320M -n system lvpool
# /lvm/sbin/lvm lvcreate -L 1G -n userdata lvpool
# /lvm/sbin/lvm lvcreate -L 10G -n media lvpool
[...]
This creates the mandatory logical volumes named "system", "userdata", and "media", which will be mounted on /system, /data, and /sdcard, respectively. Replace the argument to -L with the desired size of each partition. (/system needs to be at least 300 MB to fit the stock ROM.) You can create additional volumes similarly:
Code:
# /lvm/sbin/lvm lvcreate -L [size] -n [name] lvpool
replacing [size] with the desired size and [name] with the desired name. You have a little less than 15 GB space in the volume group to work with; depending on how many partitions you want to create, you can adjust the size of the "media" and "userdata" logical volumes as required.
Reboot back into recovery. Mount the USB storage on your computer. On your computer, format your phone's USB storage as you would a USB flash drive.
Copy your nandroid backup from your computer onto your phone.
Reboot back into recovery. Restore the nandroid backup.
Reboot into the bootloader. Flash the boot image to your phone via fastboot:
Code:
fastboot flash boot boot-lvm-crespo-IMM76D.img
(GPL information: this is the stock kernel image for IMM76D. Source is available from AOSP git. For LVM source, see this post.)
Reboot. You should have a working device running on LVM.
Additional tips and hints
To see the logical volumes you've created, use
Code:
# /lvm/sbin/lvm lvs
and to see how much free space you have remaining in the volume group, use
Code:
# /lvm/sbin/lvm vgs
If you want to delete a logical volume (for example, if you screwed up), use
Code:
# /lvm/sbin/lvm lvremove /dev/lvpool/name
(replacing "name" with the name of the LV you want to delete).
It's often useful to leave a bit of free space in the volume group (512 MB to 1 GB or so). This gives you a bit more flexibility to modify the layout or grow partitions in the future, and allows you to take snapshots of logical volumes.
Removing LVM from your phone
Flash a standard recovery such as the regular ClockworkMod recovery to your phone.
Do a full wipe/factory reset.
Restore your phone from a backup.
If things go really wrong, flash the factory image to your phone via fastboot.
Modifying an existing ROM to use LVM
(This is a condensed version of the full guide: https://raw.github.com/steven676/android-lvm-mod/master/HOWTO-MOD)
You will first want to grab a copy of the binaries and config files by cloning my git repository: https://github.com/steven676/android-lvm-mod.
Unpack the ramdisks from your boot and recovery images. Make the following changes:
Copy the contents of lvm-bin/ in the git repository to lvm/ in the ramdisks.
Copy devices/crespo/lvm.conf to lvm/etc/lvm.conf in the ramdisks.
For the boot image, integrate the changes in devices/crespo/boot/init.herring.rc-changes.diff into your init.herring.rc.
For the recovery image, integrate the changes in devices/crespo/recovery/init.rc-changes.diff into your init.rc.
For the recovery image, copy devices/crespo/recovery/recovery.fstab to etc/recovery.fstab.
Repack the ramdisks and create new boot and recovery images with them (the original kernels are fine to use).
If creating a flashable zip to install your ROM, you will also want to modify the installer script to set up the LVM volume group and logical volumes (see the previous post).
If you're building your own kernel, consider enabling CONFIG_DM_SNAPSHOT in your kernel's build configuration, to allow taking snapshots of logical volumes.
Remember that LVM is released under the terms of the GPL v2 (same as the Linux kernel), so you are required to comply with the GPL's source distribution requirements with respect to LVM.
More extensive modifications (such as changing the devices used to form the volume group) are possible; see the full HOWTO guide for details.
Building LVM from source for Android
The LVM source was written for standard glibc-based GNU/Linux systems, and doesn't build agains Android libc. We could invest time and effort into porting it to Android, but it's easier to just statically link the LVM binary against glibc (we already have to use a statically linked binary, since the boot image doesn't ship shared libraries).
To build LVM with glibc, you will need either an actual GNU/Linux ARM system with a development environment (gcc, make, and glibc header files) set up, or a GNU/Linux ARM cross-compiler toolchain (more difficult to set up). The binaries in lvm-bin/ were compiled with an Emdebian squeeze/armel toolchain running on a Debian squeeze/amd64 machine; this procedure has also been tested with a Nexus S running a Debian squeeze chroot (though any recent Linux distribution and any device should do). The Linaro prebuilt GCC toolchain and the CodeSourcery CodeBench Lite toolchain for ARM GNU/Linux should work; the Android NDK toolchain will not.
Getting the source
Clone the lvm-mod git repository. Then, in the newly cloned repository, do
Code:
git submodule init
git submodule update
You will have a copy of the LVM source (as used to build the binaries in lvm-bin/) in lvm-src/.
(Alternately, clone https://github.com/steven676/lvm2 and checkout branch android-lvm-mod. You can also use upstream's git repository or source tarballs; see their website for details.)
Building the source
(This is a condensed version of the full guide: https://raw.github.com/steven676/android-lvm-mod/master/HOWTO-BUILD)
These instructions are written for a native build (building in a Debian/Ubuntu/Fedora chroot on an actual ARM device).
Configure the LVM source:
Code:
$ ./configure --prefix=/lvm --enable-static_link --disable-readline \
--disable-selinux --with-pool=none --with-cluster=none \
--with-confdir=/lvm/etc --with-default-run-dir=/data/lvm/run \
--with-default-system-dir=/lvm/etc \
--with-default-locking-dir=/data/lvm/lock \
--with-optimisation="-Os -march=armv5te -mtune=cortex-a8 -mthumb"
For a cross build, you need to set up the system to run ARM binaries using QEMU (see the full HOWTO for details). (For extra credit, fix the build so that it works with the configuration produced by running configure without qemu-arm enabled.) Then configure the source with:
Code:
$ export CC=arm-linux-gnueabi-gcc # replace with your cross compiler
$ ./configure --host=arm-linux-gnueabi \
--prefix=/lvm --enable-static_link --disable-readline \
--disable-selinux --with-pool=none --with-cluster=none \
--with-confdir=/lvm/etc --with-default-run-dir=/data/lvm/run \
--with-default-system-dir=/lvm/etc \
--with-default-locking-dir=/data/lvm/lock \
--with-optimisation="-Os -march=armv5te -mtune=cortex-a8 -mthumb"
Build the source:
Code:
$ make
Grab the pieces you need: the statically linked, unstripped lvm binary is located in tools/lvm.static, and a sample configuration file is in doc/example.conf.
(reserved)
Hello steven676,
This post is helpful to me!
But I have some questions on LVM as I am new to it.
1. Is it possible to use LVM only on one pv, say /sdcard?
2. If 1. yes, will lv's on a pv be linear mapped, that is, lv's in a pv are placed one after one?
3. now that removing lvm is possible, is it also possible to backup lvm setting, and switching between non-lvm and lvm environment?
Thanks
solarispika said:
1. Is it possible to use LVM only on one pv, say /sdcard?
Click to expand...
Click to collapse
Sure. Just modify the arguments to pvcreate and vgcreate accordingly:
Code:
# /lvm/sbin/lvm pvcreate /dev/block/mmcblk0p3
# /lvm/sbin/lvm vgcreate lvpool /dev/block/mmcblk0p3
solarispika said:
2. If 1. yes, will lv's on a pv be linear mapped, that is, lv's in a pv are placed one after one?
Click to expand...
Click to collapse
Probably, but in general it is not safe to assume this. Imagine the following sequence of commands:
Code:
# /lvm/sbin/lvm lvcreate -L 1G -n vola lvpool
# /lvm/sbin/lvm lvcreate -L 1G -n volb lvpool
# /lvm/sbin/lvm lvresize -L +1G /dev/lvpool/vola
What's likely to happen here is that vola is going to be split into two segments on disk, like this:
Code:
[ 1GB vola ][ 1 GB volb ][ 1 GB vola ][ remaining free space ]
There are ways in which you can give LVM hints as to what on-disk layout you want, and the LVM tools will generate information about the current layout in /data/lvm/backup if that directory's available (and mounted read-write) at the time, but in general, it's best to treat the on-disk layout of a logical volume as unknown. In practice, unless you have physical volumes with widely varying characteristics in the same volume group (say, an SSD and some spinning-platter hard disks), you shouldn't need to worry about the actual layout.
solarispika said:
3. now that removing lvm is possible, is it also possible to backup lvm setting, and switching between non-lvm and lvm environment?
Click to expand...
Click to collapse
If /data is mounted read-write, running
Code:
# /lvm/sbin/lvm vgcfgbackup
will create a human-readable backup of the current LVM volume group metadata in /data/lvm/backup (if that directory is available and mounted read-write).
I'm not sure what you mean by "switching" between non-LVM and LVM environments. If you mean going between an unmodified stock boot image and an LVM boot image, the answer is yes, but you won't have access to any of the data in your LVM logical volumes while running an image not configured for LVM, and you need to be careful not to accidentally format the LVM physical volume.
If you're asking about having two or more ROMs on the phone, one installed to the normal /data and /system eMMC partitions, and another on LVM logical volumes, the answer is also yes, but both ROMs will need modified ramdisks. The one for the eMMC-installed ROM should only mount /sdcard from LVM, while the others should be set up to mount /data and /system from LVM as well.
Good write up;-)
wonder if lvm swap could be connected as extra memory .
Sent from my Nexus S using XDA
wizardslovak said:
wonder if lvm swap could be connected as extra memory .
Click to expand...
Click to collapse
Sure, of course. From my phone:
Code:
$ cat /proc/swaps
Filename Type Size Used Priority
/dev/mapper/lvpool-swap partition 65532 28196 -1
It works just fine, even if it's not a setup I'd use on a mission-critical server.
Hey Guys,
Thanks for this awesome guide.
I just have a quick question, what are the advantages of using LVM instead of the normal partitioning?
I just want to know cause i might added to my rom.
Thanks
mandaman2k said:
I just have a quick question, what are the advantages of using LVM instead of the normal partitioning?
Click to expand...
Click to collapse
Primarily flexibility in deciding the number and layout of partitions -- see the first post.
Sounds good . Ill try it once home ;-)
Sent from my Nexus S using XDA
I just pushed a couple of changes:
Updated prebuilt binaries and LVM source to 2.02.96.
Fixed the instructions for cross compiling LVM.
The boot and recovery images attached to the second post have been updated accordingly.
Is this the only way to make the device function like HC/ICS/JB devices that ship with combined storage?
Are the images from Google partitioned with internal/external storage or are the latest images partitioned with a layout similar to the Galaxy Nexus?
CocoCopernicus said:
Is this the only way to make the device function like HC/ICS/JB devices that ship with combined storage?
Click to expand...
Click to collapse
If you want a setup that's exactly as on a 3.0+ device with "SD card" data stored in /data, then yes, this is the only way I know of. If you just want MTP functionality, then no.
CocoCopernicus said:
Are the images from Google partitioned with internal/external storage or are the latest images partitioned with a layout similar to the Galaxy Nexus?
Click to expand...
Click to collapse
Official Google software builds use separate userdata and media partitions and continue to offer the 2.x-style USB mass storage access. I'm not sure the partition layout is adjustable in software -- the eMMC presents an EFI partition layout which no one seems to have figured out how to change.
Cool, thanks. Yea, I'm not too interested in the MTP functionality, I just don't want to deal with internal/external storage after using the Galaxy Nexus.
Swap partiton
Hi..
how i can to create a swap partition of 1G and added to system??
I had create a 1G partition "swap" but system no activated this partition.
xxmurdocxx said:
Hi..
how i can to create a swap partition of 1G and added to system??
I had create a 1G partition "swap" but system no activated this partition.
Click to expand...
Click to collapse
You'd need to format the swap partition:
Code:
# mkswap /dev/lvpool/swap
Also, you need to make sure that your kernel has swap support (CONFIG_SWAP=y -- the default kernel does not have this) and that your init scripts are enabling the swap partition (swapon /dev/lvpool/swap).
One other note: you might find lag to be somewhat severe with a 1 GB swap partition -- I'd suggest smaller.
I'm finally getting around to messing with my NS. From what I understand I can't just modify an existing rom(stock JB in this case) to use the larger partitions without compiling an entire new rom, right?
Which would mean I'd be at the mercy of whoever created the ROM to update when an OTA rolls around?
CocoCopernicus said:
I'm finally getting around to messing with my NS. From what I understand I can't just modify an existing rom(stock JB in this case) to use the larger partitions without compiling an entire new rom, right?
Which would mean I'd be at the mercy of whoever created the ROM to update when an OTA rolls around?
Click to expand...
Click to collapse
No, you can modify an existing ROM yourself. It's most definitely not the simplest process around, though -- see the documentation at the top of the thread for instructions. As I say there ... read thoroughly and understand before attempting.
All of TWRP 3.x source is public. You can compile it on your own. This guide isn't going to be a step-by-step, word-for-word type of guide. If you're not familiar with basic Linux commands and/or building in AOSP then you probably won't be able to do this.
You can currently use Omni 6.0, Omni 7.1, Omni 8.1, Omni 9.0, CM 13.0, CM 14.1, CM 15.1, LineageOS 16.0 source code. Omni 9.0 is recommended for now unless your device has a super partition.
If you are using CM/LineageOS, you'll need to place TWRP in the LineageOS/bootable/recovery-twrp folder and set RECOVERY_VARIANT := twrp in your BoardConfig.mk file. TWRP source code can be found here:
https://github.com/TeamWin/android_bootable_recovery (NOTE: The location for the latest TWRP source code has changed!)
Select the newest branch available. This step is not necessary with Omni because Omni already includes TWRP source by default, however, if you are using an older version of Omni, you will probably want to pull from the latest branch (the latest branch will compile successfully in older build trees)
If you are only interested in building TWRP, you may want to try working with a smaller tree. You can try using this manifest. It should work in most cases but there may be some situations where you will need more repos in your tree than this manifest provides:
https://github.com/minimal-manifest-twrp
*BEFORE YOU COMPILE*
Note: If you add or change any flags, you will need to make clean or make clobber before recompiling or your flag changes will not be picked up.
Now that you have the source code, you'll need to set or change a few build flags for your device(s). Find the BoardConfig.mk for your device. The BoardConfig.mk is in your devices/manufacturer/codename folder (e.g. devices/lge/hammerhead/BoardConfig.mk).
Your board config will need to include architecture and platform settings. Usually these are already included if you're using device configs that someone else created, but if you created your own, you may need to add them. Without them, recovery may seg fault during startup and you'll just see the teamwin curtain flash on the screen over and over.
We usually put all of our flags at the bottom of the BoardConfig.mk under a heading of #twrp For all devices you'll need to tell TWRP what theme to use. This TW_THEME flag replaces the older DEVICE_RESOLUTION flag. TWRP now uses scaling to stretch any theme to fit the screen resolution. There are currently 5 settings which are: portrait_hdpi, portrait_mdpi, landscape_hdpi, landscape_mdpi, and watch_mdpi. For portrait, you should probably select the hdpi theme for resolutions of 720x1280 and higher. For landscape devices, use the hdpi theme for 1280x720 or higher.
TW_THEME := portrait_hdpi
Note that themes do not rotate 90 degrees and there currently is no option to rotate a theme. If you find that the touchscreen is rotated relative to the screen, then you can use some flags (discussed later in this guide) to rotate the touch input to match the screen's orientation.
In addition to the resolution, we have the following build flags:
RECOVERY_SDCARD_ON_DATA := true -- this enables proper handling of /data/media on devices that have this folder for storage (most Honeycomb and devices that originally shipped with ICS like Galaxy Nexus) This flag is not required for these types of devices though. If you do not define this flag and also do not include any references to /sdcard, /internal_sd, /internal_sdcard, or /emmc in your fstab, then we will automatically assume that the device is using emulated storage.
BOARD_HAS_NO_REAL_SDCARD := true -- disables things like sdcard partitioning and may save you some space if TWRP isn't fitting in your recovery patition
TW_NO_BATT_PERCENT := true -- disables the display of the battery percentage for devices that don't support it properly
TW_CUSTOM_POWER_BUTTON := 107 -- custom maps the power button for the lockscreen
TW_NO_REBOOT_BOOTLOADER := true -- removes the reboot bootloader button from the reboot menu
TW_NO_REBOOT_RECOVERY := true -- removes the reboot recovery button from the reboot menu
RECOVERY_TOUCHSCREEN_SWAP_XY := true -- swaps the mapping of touches between the X and Y axis
RECOVERY_TOUCHSCREEN_FLIP_Y := true -- flips y axis touchscreen values
RECOVERY_TOUCHSCREEN_FLIP_X := true -- flips x axis touchscreen values
TWRP_EVENT_LOGGING := true -- enables touch event logging to help debug touchscreen issues (don't leave this on for a release - it will fill up your logfile very quickly)
BOARD_HAS_FLIPPED_SCREEN := true -- flips the screen upside down for screens that were mounted upside-down
There are other build flags which you can locate by scanning the Android.mk files in the recovery source. Most of the other build flags are not often used and thus I won't document them all here.
*RECOVERY.FSTAB*
TWRP 2.5 and higher supports some new recovery.fstab features that you can use to extend TWRP's backup/restore capabilities. You do not have to add fstab flags as most partitions are handled automatically.
Note that TWRP only supports v2 fstabs in version 3.2.0 and higher. You will still need to use the "old" format of fstab for older TWRP (example of that format is below), and even TWRP 3.2.0 still supports the v1 format in addition to the v2 format. To maximize TWRP's compatibility with your build tree, you can create a twrp.fstab and use PRODUCT_COPY_FILES to place the file in /etc/twrp.fstab When TWRP boots, if it finds a twrp.fstab in the ramdisk it will rename /etc/recovery.fstab to /etc/recovery.fstab.bak and then rename /etc/twrp.fstab to /etc/recovery.fstab. Effectively this will "replace" the fstab 2 file that your device files are providing with the TWRP fstab allowing you to maintain compatibility within your device files and with other recoveries.
Code:
PRODUCT_COPY_FILES += device/lge/hammerhead/twrp.fstab:recovery/root/etc/twrp.fstab
The fstab in TWRP can contain some "flags" for each partition listed in the fstab.
Here's a sample TWRP fstab for the Galaxy S4 that we will use for reference:
Code:
/boot emmc /dev/block/platform/msm_sdcc.1/by-name/boot
/system ext4 /dev/block/platform/msm_sdcc.1/by-name/system
/data ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata length=-16384
/cache ext4 /dev/block/platform/msm_sdcc.1/by-name/cache
/recovery emmc /dev/block/platform/msm_sdcc.1/by-name/recovery
/efs ext4 /dev/block/platform/msm_sdcc.1/by-name/efs flags=display="EFS";backup=1
/external_sd vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="Micro SDcard";storage;wipeingui;removable
/usb-otg vfat /dev/block/sda1 /dev/block/sda flags=display="USB-OTG";storage;wipeingui;removable
/preload ext4 /dev/block/platform/msm_sdcc.1/by-name/hidden flags=display="Preload";wipeingui;backup=1
/modem ext4 /dev/block/platform/msm_sdcc.1/by-name/apnhlos
/mdm emmc /dev/block/platform/msm_sdcc.1/by-name/mdm
Flags are added to the end of the partition listing in the fstab separated by white space (spaces or tabs are fine). The flags affect only that partition but not any of the others. Flags are separated by semicolons. If your display name is going to have a space, you must surround the display name with quotes.
Code:
/external_sd vfat /dev/block/mmcblk1p1 flags=display="Micro SDcard";storage;wipeingui;removable
The flags for this partition give it a display name of "Micro SDcard" which is displayed to the user. wipeingui makes this partition available for wiping in the advanced wipe menu. The removable flag indicates that sometimes this partition may not be present preventing mounting errors from being displayed during startup. Here is a full list of flags:
removable -- indicates that the partition may not be present preventing mounting errors from being displayed during boot
storage -- indicates that the partition can be used as storage which makes the partition available as storage for backup, restore, zip installs, etc.
settingsstorage -- only one partition should be set as settings storage, this partition is used as the location for storing TWRP's settings file
canbewiped -- indicates that the partition can be wiped by the back-end system, but may not be listed in the GUI for wiping by the user
userrmrf -- overrides the normal format type of wiping and only allows the partition to be wiped using the rm -rf command
backup= -- must be succeeded by the equals sign, so backup=1 or backup=0, 1 indicates that the partition can be listed in the backup/restore list while 0 ensures that this partition will not show up in the backup list.
wipeingui -- makes the partition show up in the GUI to allow the user to select it for wiping in the advanced wipe menu
wipeduringfactoryreset -- the partition will be wiped during a factory reset
ignoreblkid -- blkid is used to determine what file system is in use by TWRP, this flag will cause TWRP to skip/ignore the results of blkid and use the file system specified in the fstab only
retainlayoutversion -- causes TWRP to retain the .layoutversion file in /data on devices like Sony Xperia S which sort of uses /data/media but still has a separate /sdcard partition
symlink= -- causes TWRP to run an additional mount command when mounting the partition, generally used with /data/media to create /sdcard
display= -- sets a display name for the partition for listing in the GUI
storagename= -- sets a storage name for the partition for listing in the GUI storage list
backupname= -- sets a backup name for the partition for listing in the GUI backup/restore list
length= -- usually used to reserve empty space at the end of the /data partition for storing the decryption key when Android's full device encryption is present, not setting this may lead to the inability to encrypt the device
canencryptbackup= -- 1 or 0 to enable/disable, makes TWRP encrypt the backup of this partition if the user chooses encryption (only applies to tar backups, not images)
userdataencryptbackup= -- 1 or 0 to enable/disable, makes TWRP encrypt only the userdata portion of this partition, certain subfuldes like /data/app would not be encrypted to save time
subpartitionof= -- must be succeeded by the equals sign and the path of the partition it is a subpartition of. A subpartition is treated as "part" of the main partition so for instance, TWRP automatically makes /datadata a subpartition of /data. This means that /datadata will not show up in the GUI listings, but /datadata would be wiped, backed up, restored, mounted, and unmounted anytime those operations are performed on /data. A good example of the use of subpartitions is the 3x efs partitions on the LG Optimus G:
Code:
/efs1 emmc /dev/block/mmcblk0p12 flags=backup=1;display=EFS
/efs2 emmc /dev/block/mmcblk0p13 flags=backup=1;subpartitionof=/efs1
/efs3 emmc /dev/block/mmcblk0p14 flags=backup=1;subpartitionof=/efs1
This lumps all 3 partitions into a single "EFS" entry in the TWRP GUI allowing all three to be backed up and restored together under a single entry.
As of TWRP 3.2.0, TWRP now supports a version 2 fstab like those that have been found in Android devices for years. Yes, I know we're really slow to adopt this one, but I also saw no major advantage to v2 and the v2 fstab was being used in regular Android as well as recovery and I didn't want full ROM builds crashing or doing other weird things because of TWRP flags being present in the fstab. Version 2 fstab support is automatic. You don’t need to add any build flags. The regular version 1 fstab format is also still valid and it’s possible to use both v1 and v2 types in the same fstab. TWRP 3.2.0 also supports using wildcards via the asterisk in v1 format which can be useful for USB OTG and micro SD cards with multiple partitions. Note also that v2 fstab formats haven’t been extensively tested so developers should test their v2 fstabs before shipping to users (you should always be testing anyway!).
This is a v1 fstab line with a wildcard intended for a USB OTG drive. All partitions should show up in the list of available storage devices when the user plugs in a drive:
Code:
/usb-otg vfat /dev/block/sda* flags=removable;storage;display=USB-OTG
This line is straight from the v2 fstab for the same device and also should work. In this case the kernel will notify us that new devices have been added or removed via uevents:
Code:
/devices/soc.0/f9200000.ssusb/f9200000.dwc3/xhci-hcd.0.auto/usb* auto auto defaults voldmanaged=usb:auto
In addition to the v2 fstab, you can include /etc/twrp.flags which uses the v1 fstab format. The twrp.flags file can be used to supplement the v2 fstab with TWRP flags, additional partitions not included in the v2 fstab, and to override settings in the v2 fstab. For example, I have a Huawei device with the following stock v2 fstab present as /etc/recovery.fstab
Code:
# Android fstab file.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1 wait,verify
/dev/block/bootdevice/by-name/cust /cust ext4 ro,barrier=1 wait,verify
/devices/hi_mci.1/mmc_host/mmc1/* auto auto defaults voldmanaged=sdcard:auto,noemulatedsd
/devices/hisi-usb-otg/usb1/* auto auto defaults voldmanaged=usbotg:auto
/dev/block/bootdevice/by-name/userdata /data f2fs nosuid,nodev,noatime,discard,inline_data,inline_xattr wait,forceencrypt=footer,check
/dev/block/bootdevice/by-name/cache /cache ext4 rw,nosuid,nodev,noatime,data=ordered wait,check
/dev/block/bootdevice/by-name/splash2 /splash2 ext4 rw,nosuid,nodev,noatime,data=ordered,context=u:object_r:splash2_data_file:s0 wait,check
/dev/block/bootdevice/by-name/secure_storage /sec_storage ext4 rw,nosuid,nodev,noatime,discard,auto_da_alloc,mblk_io_submit,data=journal,context=u:object_r:teecd_data_file:s0 wait,check
In addition I have also included this in /etc/twrp.flags:
Code:
/boot emmc /dev/block/platform/hi_mci.0/by-name/boot
/recovery emmc /dev/block/platform/hi_mci.0/by-name/recovery flags=backup=1
/cust ext4 /dev/block/platform/hi_mci.0/by-name/cust flags=display="Cust";backup=1
/misc emmc /dev/block/platform/hi_mci.0/by-name/misc
/oeminfo emmc /dev/block/platform/hi_mci.0/by-name/oeminfo flags=display="OEMinfo";backup=1
/data f2fs /dev/block/dm-0
/system_image emmc /dev/block/platform/hi_mci.0/by-name/system
The first 2 lines in twrp.flags adds the boot and recovery partitions which were not present at all in the v2 fstab. The /cust line in the twrp.flags file is added to tell TWRP to allow users to back up the cust partition and to give it a slightly better display name. The /misc partition is also only present in the twrp.flags file. Much like the /cust partition, the /oeminfo partition is in the twrp.flags file to tell TWRP to allow users to back it up and give a display name. The /data line is needed because this Huawei device, like many Huawei devices, is encrypted but the encryption uses some special Huawei binaries and is encrypted with some sort of default password that the user cannot change. We use the Huawei binaries to decrypt the device automatically in recovery. The /data line here tells TWRP to use /dev/block/dm-0 instead of /dev/block/bootdevice/by-name/userdata which is required for proper mounting, etc. Lastly we have the /system_image line so that TWRP will add a system image option for backup and restore.
As we add more new devices, we’ll add more example device trees to https://github.com/TeamWin/ which should help you find more ways to use this new fstab support. Please note that using the v2 fstab format at this point is completely optional, so feel free to continue using v1 if that is what is more comfortable or if you have trouble with the v2 format support.
If you have questions, feel free to stop by #twrp on Freenode. If you post here I may not see it for a while as I have lots of threads out there and there's no way for me to keep track of them all. If you successfully port TWRP to a new device, please let us know! We love to hear success stories!
If you have code changes that you'd like to submit, please submit them through the Omni Gerrit server. Guide is here.
Once you get Omni or CM sync'ed and your TWRP flags set, you should do a source ./build/envsetup.sh We usually lunch for the device in question, so something like "lunch omni_hammerhead-eng".
After you lunch successfully for your device this is the command used for most devices:
Code:
make clean && make -j# recoveryimage
Replace the # with the core count +1, so if you have a dual core it's -j3 and a quad core becomes -j5, etc. If you're dealing with a "typical" Samsung device, then you'll need to
Code:
make -j# bootimage
Most Samsung devices have the recovery included as an extra ramdisk in the boot image instead of a separate recovery partition as found on most other devices.
Old guide here: http://forum.xda-developers.com/showpost.php?p=65482905&postcount=1471
So, now, hopefully you've compiled TWRP for your device and gotten it working. Now, you'd like to know how to get TWRP officially supported for your device so that it can be installed automatically with the TWRP app. In order for us to add "official support" for your device we'll need the following:
1) Device configuration files to compile TWRP from source for your device. This means that you cannot have repacked a recovery.img by hand to get it working. We need to be able to compile it from source so that we can easily release future updates.
2) We'll build a copy of TWRP and send it to you for validation. Once you've validated that we can build a working image for your device, we'll add it to the official TWRP app.
Note that we won't take credit for your port. You'll still get to post it on XDA to collect all the credit that goes with releasing something new for your device along with having your name listed on our website as the maintainer for the device. Also note that it's not always possible to provide automated installs for all devices.
You can now boot TWRP in an emulator. If you're trying to help develop TWRP, this can be a huge help as you don't have to risk your device and you can do everything directly on your computer.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Download this set of device configuration files.
Compile a recoveryimage using those device files. In the Android SDK, click on Tools -> Manage AVDs. Click New. Set it up as the following:
AVD Name: TWRP
Device: Galaxy Nexus
Target: ICS or newer though anything will probably work here
CPU: ARM (armeabi-v7a)
Check the box for hardware keyboard (your computer's keyboard will work in TWRP)
Up to you if you want to have the skin with controls present
Front Camera: None
Back Camera: None
RAM: 1024 VM Heap: 64
Internal Storage: 200
SD Card: Size: 500 MiB
Then click OK.
Once you have your AVD and your recoveryimage, you can boot TWRP in the emulator by browsing to your android-sdk/tools folder and run this command:
./emulator -avd TWRP -ramdisk CMFOLDER/out/target/product/twrp/ramdisk-recovery.img
Note that ADB doesn't work right away. About 10 to 15 seconds after TWRP finishes booting, ADB will come online. We start ADB via init.rc so even if TWRP fails to boot due to some kind of code error that you may have made, ADB should still work. Enjoy!
TWRP and A/B devices:
From a TWRP standpoint, A/B devices aren't a whole lot different from regular devices, but developers seem to be shy about working on these devices. I'm going to try to shed some light on this subject and hopefully this will serve as a guide for porting TWRP to A/B devices.
Firstly, let's understand what is an A/B device and how it's different. A/B devices have duplicates of many partitions on the device. An A/B device has 2x system partitions, 2x boot partitions, 2x vendor partitions, 2x modem / firmware partitions, etc. Only one slot is in use at a time. During early boot, the first stages of the bootloader read some small amount of data called the BCB or Bootloader Control Block and decide whether to boot the A partitions or the B partitions. When an OTA update is available, the data from the active slot is copied from the inactive slot and patched / updated. For example, if you're currently on slot A, your device would download the update and copy the existing system partition from slot A and patch / update it with the new updates into slot B. Once the copying and updating is complete, the BCB is updated and the device reboots using slot B. Next time an update is available, the system partition in slot B is copied to slot A and updated, the BCB gets updated, and we reboot to slot A. When viewing partitions on the device, you'll see something like this:
Code:
/dev/block/bootdevice/by-name/boot_a
/dev/block/bootdevice/by-name/boot_b
/dev/block/bootdevice/by-name/system_a
/dev/block/bootdevice/by-name/system_b
/dev/block/bootdevice/by-name/userdata
/dev/block/bootdevice/by-name/vendor_a
/dev/block/bootdevice/by-name/vendor_b
Note the dual boot, system and vendor partitions in the list above, but only one userdata partition.
While there is technically no requirement that I am aware of, all A/B devices shipped thus far have no separate recovery partition. Instead, the boot image contains the recovery in its ramdisk. The important thing is knowing that the boot image now also contains the recovery. For completeness, the system partition is a full root file system. During boot, if the kernel is told to boot to recovery, it will extract the ramdisk in the boot partition. If the kernel is not told by the bootloader to boot to recovery, then the kernel will mount the appropriate system partition (A or B) because the system partition is a full root file system. This means that the system partition on these devices is mounted to / instead of to /system and the system partition contains all of the files that would have normally been in the boot image ramdisk and a /system subfolder.
From a TWRP standpoint, there are 3 things that you have to do for an A/B device. First, you need to set
Code:
AB_OTA_UPDATER := true
in your BoardConfig.mk. Secondly, for any partition that has an A/B option, you need to add
Code:
flags=slotselect
in your fstab so something like this:
Code:
/boot emmc /dev/block/bootdevice/by-name/boot flags=slotselect
/system ext4 /dev/block/bootdevice/by-name/system flags=slotselect
/system_image emmc /dev/block/bootdevice/by-name/system flags=slotselect
/vendor ext4 /dev/block/bootdevice/by-name/vendor flags=slotselect;display="Vendor";backup=1
/vendor_image emmc /dev/block/bootdevice/by-name/vendor flags=slotselect
Lastly, once you get into TWRP, you will probably want to make sure that bootctl hal-info responds correctly with no errors. Usually the bootctl binary requires a proprietary library or even a couple of services to work correctly. If bootctl does not work correctly, then you will not be able to switch slots within TWRP correctly either.
In addition to setting
Code:
AB_OTA_UPDATER := true
you may also want to set:
Code:
BOARD_USES_RECOVERY_AS_BOOT := true
BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
If you set
Code:
BOARD_USES_RECOVERY_AS_BOOT := true
then make recoveryimage will no longer work and instead you will have to make bootimage. I don't recommend setting either of these flags for TWRP-only build trees. These flags will probably be required for developers building full ROMs for A/B devices.
Installing / Flashing TWRP on A/B devices:
Since all known A/B devices do not have a separate recovery partition, you will eventually have to flash TWRP to the boot partition. On the Pixel 1 and 2, we use fastboot boot to temporarily boot TWRP without flashing TWRP. We are then supplying a zip to allow users to flash TWRP to both slots. You can download one of these zips from our website and update the zip as needed to support your devices. Eventually we will add tools to TWRP to allow users to flash recoveries on these devices without needing to use zips.
Recently, I worked on the Razer Phone. The Razer Phone unfortunately does not support fastboot boot. Instead, users have to determine their currently active boot slot using
Code:
adb shell getprop ro.boot.slot_suffix
then use
Code:
fastboot --set-active=_a
to switch slots to the inactive slot. From here, the user can
Code:
fastboot flash boot twrp.img && fastboot reboot
to get into TWRP. Once in TWRP they can then go to the reboot page and change back to their originally active slot, make a backup, then install TWRP. Using the inactive slot allows users to get a good, unmodified backup of their device before installing TWRP.
Hopefully this helps!
Debugging with gdb in TWRP guide can be found here!
Beep boop zee doop
I know I've PM'ed you but I would like to ask you again. What should I do after compiling the TWRP recovery binary? What files have to be copied and where? I'm trying to integrate it with an ICS kernel.
Dees_Troy said:
Once you get CM sync'ed, I suggest that you go ahead and compile a build of ClockworkMod (ClockworkMod source is included in the CM repos). We usually lunch for the device in question, so something like "lunch full_tenderloin-eng".
After you lunch successfully for your device this is the command used for most devices:
Code:
make clean && make -j# recoveryimage
Click to expand...
Click to collapse
I don't get this part. What is lunch supposed to be? is it supposed to be a individual command for a device or can I do "lunch full_tenderloin-eng" for all devices? Because I am building for a device that doesn't run Android natively (at least out of-the-box) so cyanogenmod doesn't support it on any way...
Also, can I use this for resistive screens? Just to make sure.
Thanks for the guide, I have been looking for this for a long time
thanks for the guide, well structured and not so complicated
i have only a question: i'm trying to build it for galaxy 5, the problem is that the resolution is 320x240, so can you tip me on modify the sources? (i've done this some days ago, but images were too large)
manuel100 said:
thanks for the guide, well structured and not so complicated
i have only a question: i'm trying to build it for galaxy 5, the problem is that the resolution is 320x240, so can you tip me on modify the sources? (i've done this some days ago, but images were too large)
Click to expand...
Click to collapse
Set the device resolution to 320x240...I'm pretty sure they have support for that resolution...and if they don't then you can copy one of there's except resize it all to 320x240
Edit-they only have 320x480 https://github.com/TeamWin/Team-Win-Recovery-Project/
My question: I built twrp from source a while ago using smasher's Samsung inject twrp zip...that worked fine for a while...but recently we switched to mtd format so that inject twrp zip doesn't work...neither does the inhect twrp button within twrp anymore...I've seen that the galaxy s has the same problem as well...just wondering if you know of a work around...
Sent from my SGH-I997 using Tapatalk 2
mg2195 said:
Set the device resolution to 320x240...I'm pretty sure they have support for that resolution...and if they don't then you can copy one of there's except resize it all to 320x240
Edit-they only have 320x480 https://github.com/TeamWin/Team-Win-Recovery-Project/
My question: I built twrp from source a while ago using smasher's Samsung inject twrp zip...that worked fine for a while...but recently we switched to mtd format so that inject twrp zip doesn't work...neither does the inhect twrp button within twrp anymore...I've seen that the galaxy s has the same problem as well...just wondering if you know of a work around...
Sent from my SGH-I997 using Tapatalk 2
Click to expand...
Click to collapse
thanks for respond, however i've tried resizing images to 320x240 but i don't know what should be the size of bottoms, because they are alway out-of-screen
what is smasher's Samsung inject twrp zip? but i think that the recovery doesn't work because you have to built it with mtd support (for ex. on madteam they are trying to build a mtd kernel, but for install that testing rom they built a special cwm with mtd support)
manuel100 said:
thanks for respond, however i've tried resizing images to 320x240 but i don't know what should be the size of bottoms, because they are alway out-of-screen
what is smasher's Samsung inject twrp zip? but i think that the recovery doesn't work because you have to built it with mtd support (for ex. on madteam they are trying to build a mtd kernel, but for install that testing rom they built a special cwm with mtd support)
Click to expand...
Click to collapse
Smashers inject twrp zip is a tool for Samsung devices that let's you get the recovery without flashing the whole kernel. You basically put the ramdisk-recovery.img in the zip and then flash. During the flash process it pulls the boot.img, replaces the current ramdisk-recovery.img with the new one that contains twrp. It then deletes the old boot.img and flashes the new one...not affecting the actual kernel...
The recovery itself has mtd support...I can use it if I flash the whole boot.img, but I don't want to release the recovery within a whole kernel...because then I have to keep it up to date with both twrp and kernel sources, not to mention the different kernels available for my device....I can't make a recovery for each kernel...don't have the time for that...that's where the inject came in handy....the user could use any kernel he wanted while still using twrp
Recovery logs say it fails to find the ramdisk inside the boot.img and then in parenthesis something about may not be using gzip compression...which it is....
Sent from my SGH-I997 using Tapatalk 2
---------- Post added at 07:21 AM ---------- Previous post was at 07:19 AM ----------
Deestroy did this same tutorial on rootzwiki...if you look at the second post you'll see info about the smasher inject twrp I was referring to...http://rootzwiki.com/index.php?/topic/23903-How-to-Compile-TWRP-from-Source
Sent from my SGH-I997 using Tapatalk 2
mfsr98 said:
I don't get this part. What is lunch supposed to be? is it supposed to be a individual command for a device or can I do "lunch full_tenderloin-eng" for all devices? Because I am building for a device that doesn't run Android natively (at least out of-the-box) so cyanogenmod doesn't support it on any way...
Also, can I use this for resistive screens? Just to make sure.
Thanks for the guide, I have been looking for this for a long time
Click to expand...
Click to collapse
can I get help here please?
mfsr98 said:
can I get help here please?
Click to expand...
Click to collapse
Its a single command...it opens up the menu for devices...just type lunch into the terminal and hit enter...you'll see what I mean. You will probably have to add your device to the menu by creating a vendorsetup.sh in your device repo if it doesn't already exist....
Sent from my SGH-I997 using Tapatalk 2
Thank you for the quick answer. Yes, I already have vendorsetup.sh on the boot.img. Sorry for the noob question
What about for android beginners???
Devarishi said:
What about for android beginners???
Click to expand...
Click to collapse
There's only so much that you can dumb it down and simplify it. There's lots of other guides out there for getting started. Compiling a recovery is not a super simple task that anyone and everyone can do and there's plenty of potential pitfalls including the possibility of bricking your device. If none or very little of this guide makes sense, then you might see if a developer for your device is interested in working on it instead.
how would you compile this for a device without an official cm9 build?
azoller1 said:
how would you compile this for a device without an official cm9 build?
Click to expand...
Click to collapse
Well, you don't need official cm9 if you can find any working device tree for you phone you are good to go.. For lg spectrum 4g, this could be useful.
Hey guys I'm trying to compile this for my phone the problem I'm running into is I need the root.ts I've searched and it doesn't come up with anything any help would be appreciated thanks
Sent from my SAMSUNG-SGH-I577 using xda premium
I have a mtk6577 device which is not in de device tree of CM9.
I can compile CWM for my device with CM9. Because I was only making recovery, there was no need for setting up boardconfig.
In this guide there is a part starting with TARGET_RECOVERY_INITRC which is not there in my boardconfig.
Also is stated:
"Your board config also needs to include architecture and platform settings. Usually these are already included if you're using device configs that someone else created, but if you created your own, you may need to add them. Without them, recovery will often seg fault during startup and you'll just see the teamwin curtain flash on the screen over and over."
Does this mean that I cannot build TWRP without it, even I can build CWM ?
gls9 said:
I have a mtk6577 device which is not in de device tree of CM9.
I can compile CWM for my device with CM9. Because I was only making recovery, there was no need for setting up boardconfig.
In this guide there is a part starting with TARGET_RECOVERY_INITRC which is not there in my boardconfig.
Also is stated:
"Your board config also needs to include architecture and platform settings. Usually these are already included if you're using device configs that someone else created, but if you created your own, you may need to add them. Without them, recovery will often seg fault during startup and you'll just see the teamwin curtain flash on the screen over and over."
Does this mean that I cannot build TWRP without it, even I can build CWM ?
Click to expand...
Click to collapse
Look for another mtk6577 device that has CM & copy the arch flags from it.
<< 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.
Click to expand...
Click to collapse
* * * * * * * * * * * * * * * * * * * * * * * * *
PhilZ Touch 6 Recovery
CWM Advanced Edition 6.x
* * * * * * * * * * * * * * * * * * * * * * * * *
Support clockworkmod developement
>> Developers Info + Device Request <<>> Special Features Guide <<>> How to Install <<>> 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 ManagerNote: 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
Click to expand...
Click to collapse
Video Teaser:
new update soon...
Main menu and PhilZ Settings
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
GUI Preferences: all is applied live (no reboot). Up to 14 menu height settings, scroll sensitivity, touch accuracy...
27 color settings + 5 alpha transparency levels for every GUI element
Change background image with a custom png (of your device resolution), a solid color (27 presets) or revert to original cwm image
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
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
Flash multiple zip files in a raw
Aroma File Manager + Terminal Emulator: launch with a gesture action (double tap is default)
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
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
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
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
device/brand/phone_name/device.mk
Code:
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/rootdir/etc/extra.fstab:recovery/root/etc/extra.fstab
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
Click to expand...
Click to collapse
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
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
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
Root your phone and reset Yellow Triangle
coming....
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)
Older Change History v6.x
6.29.9 (27.04.2014)
- merge "Recovery: swap XY on swipe controls"
- shell pipe: set exit code to error if any pipe element fails
* this was causing backup state to be reported good while tar command failed
6.29.7 (27.04.2014)
- minitar: add options help and change log
- minitar: build as a static library to spare 150 kb (only 16kb size increase)
6.29.2 (26.04.2014)
- fix potential bug when verifying root and recovery state on exit
- merge "Fix verify_root_and_recovery menu selections":
- hide the Go Back button from confirm menu
- merge "Prohibit mounting/formatting swap partitions in recovery"
- add minitar binary to /sbin instead of busybox tar
- minitar: enable more options, enable long options, fix selinux backup/restore, enhance GNU tar compatibility
- revert RECOVERY_NEED_SELINUX_FIX patch
- enable seamless backup/restore selinux context using minitar binary
- TWRP mode: support backup/restore of selinux context
- libtouch_gui 1.19
6.27.6 (21.04.2014)
- add libtouch_gui for armv6 devices, thanks @yuweng and androidarmv6 team
- loki: sync to upstream
- Galaxy S5 SM-G900H (k3gxx): update kernel to XXU1ANCI
- Amazon Kindle Fire HD 7 (tate): fix background and virtual keys
- Amazon Kindle Fire HD (jem & tate): fix display battery level
- LG G2: repack on older cm 6.25.4 kernel to fix graphic issues
- New: HTC One M8 Verizon (m8vzw)
- New: LG Optimus One P500 (p500) - arm v6 based
6.27.2 (18.04.2014)
- libtouch_gui 1.18
- confirm cancel nandroid jobs (prompt to press 'Back' twice or resume after 5 secs)
- vibrate after backup/restore operations
6.27.0 (17.04.2014)
- MTK support: fix backup & restore of boot/recovery/uboot partitions
- MTK devices: improve error handling of partitions size
- do not consider su symlink in /system/bin as a broken root
- New: Amazon Kindle Fire HD 7 (tate)
- New: Amazon Kindle Fire HD 8.9 (jem)
- New: Galaxy S5 SM-G900H Exynos variant (k3gxx)
6.26.6 (14.04.2014)
- m7 unified for m7ul, m7att and m7tmo
- CWM 6.0.4.8
- merge support for native dual boot devices
- sync sources
6.26.4 (12.04.2014)
- update libloki to latest sources
- broken root: help victims of bad custom ROMs
This adds extra code to detect if two su instances are installed in /system/bin and /system/xbin
It will kill both and properly apply SuperSU
- fixing root on exit was never done what ever was user choice
6.26.1 (06.04.2014)
- New: Note 10.1 2014 3G - SM-P601 (lt0wifiue)
- New: LG Optimus L7 P700 (p700) by @ali.filth
- New: Galaxy Grand Quatro (i8552) by @ali.filth
- New: HTC One mini (m4)
- fb2png: better error logging
6.25.7 (05.04.2014)
- New: HTC One M8 (m8)
- New: HTC One M8 sprint (m8spr)
- New: Note 10.1 2014 Wifi - SM-P600 (lt0wifi)
- derp cm_moto_msm8960
6.25.4 (31.03.2014)
- sort files using case insensitive order (adapted from @titanic-fanatic)
- use new ro.loki_disabled for unified variants not needing loki
This way, we only need to set the ENABLE_LOKI flag to have a loki enabled recovery
No more need to set an extra ro.loki_enabled property
Only modification needed now is for jflte variants not using loki
Only jflteatt and jfltevzw do
We have to set ro.loki_disabled to 1 for all other variants in libinit_jflte
- New device: Galaxy X Cover 2 - skomer
- New device: Galaxy S3 Mini - golden
- New device: Sony Xperia ZR (dogo)
- New device: Sony Xperia Tablet Z (pollux)
- New device: Sony Xperia Z1 Compact (amami)
- New device: Sony Xperia S (nozomi)
- New device: moto_msm8960 unified device (by @hachamacha)
- New device: Galaxy S Advance (janice)
- New device: Galaxy Ace 2 (codina)
- New device: Samsung Galaxy Tab 3 7.0 SM-T211 (lt023g)
6.25.0 (29.03.2014)
- jflte: enable back loki for jflteatt and jfltevzw
- remove old no more needed md5 check code
6.24.8 (28.03.2014)
- libtouch_gui 1.16:
- fix when quickly doing two gesture actions one after the other, highlighted m$
we only allow gesture actions when the previous one is terminated
- set these default gesture actions:
* swipe left = screen off
* swipe right = increase brightness
* press 1 sec and lift = show log
* press 2 sec and small move = screen shot
- merge "Only init legacy property environment once"
6.24.6 (28.03.2014)
- revert using ntfs module and drop to fuse for complete write support
- use new md5digest code to generate/verify nandroid backups
- bring progress bar during nandroid md5 generation and check
- exclude log and md5 file when regenerating md5 files
- twrp mode: use new md5digest function with status bar during md5 check/create
- twrp mode: fix double md5 verification bug
- fix delete backup menu failed to reopen base backup folder + wired log message
- libtouch_gui 1.15: fix the "umount: can't umount /data: Invalid argument" log message on start when time daemon was loaded
- libtouch_gui 1.15: show "time daemon loading" message on recovery start when we're waiting for the daemon to load
- libtouch_gui 1.15: support time_daemon /data/system/time path used on some ROMs
- add Xperia ZL (odin) flags (@shoey63)
- jflte: remove /firmware and /firmware-mdm from fstab
- repack builder: fix version display during install broken after fixing cm recovery builder script
6.23.7 (25.03.2014)
- cherry-pick @mdmower patches to legacy props init: better error checking to avoid segfaulting
- really hammer lazy developers
6.23.5 (25.03.2014)
- merge: "recovery: Compatibility with upstream minui change"
- merge: "use correct USB PID for adb and new PID for adb+ums"
- merge: "Fixes makerecoveries.sh"
- merge: "nandroid: Convert selinux_android_restorecon calls to new API" from @KumaJaya
- fix fb2png flag to be enabled by default
- cherry-pick: "Revert "Add a copy of the updater binary to the recovery resources""
- cherry-pick: "Make legacy prop environment available to recovery"
- cherry-pick: "Use legacy property environment if old update-binary"
- fix potential unsafe thread code
- libtouch_gui 1.10: disable gesture actions during md5 checks as they are not thread safe
6.22.5 (22.03.2014)
- fb2pn v2.0.0 by McKael & Phil3759
* autodetect image offset to properly align frame buffer data
* fix memory leak
* fix all compiler warnings
* auto detect active frame buffer to capture
* option to force buffer to capture by user
- fix compiling of Advanced Edition
6.22.1 (18.03.2014)
- fix fb2png code for new Qualcom boards (not merged, work in progress)
- fix key repeat for hardware keys
- fix MTK board support
- fix compiling error of Advanced Edition
- fix md5 check crash when installing zip files
6.21.2 (14.03.2014)
- add progress bar while reading zip file to compute md5 check
- add color printing during md5sum checks
- (derp) fix color code printing on md5 check disappears after 5 sec (ui_wait_key() screen refresh)
- md5sum check potential bug fixes and optimizations
- libtouch_gui 1.05
6.20.6 (12.03.2014)
- add md5 sum calculation and toggle verification during install of zip files
- hammerhead: fix efs backup (derp)
- loki: use new loki_tool multi bin sources
- add missing vkeys for 240 width
- many bug fixes and code cleanups
- libtouch_gui 1.04
6.19.6 (05.03.2014)
- 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!
6.19.3 (02.03.2014)
- fix compiling for QCOM devices when using a prebuilt kernel with TARGET_PREBUILT_KERNEL
- galaxysmtd: remove ntfs-3g drivers to fit partition size
6.19.2 (01.03.2014)
- merge "nandroid: Allow tar backups of yaffs2 partitions"
- merge "update-binary: Add collect_backup_data function"
- merge "recovery: add overlay interface for recovery mode"
- merge "recovery: Add support for split display "
- merge "recovery: Fix compilation for non MSM target "
- merge "Fix overlay inclusion on MSM"
- merge "Loki: Add LG G Flex KDDI MODEL"
- merge Aroma patches:
* User selectable colorspace added to settings.
* Unmount /system at exit if mounted.
* Some more logging added.
- add 480x854 res backgrounds
- add 240x320 res backgrounds
- hlte: use new unified device builds but only for devices with new 4.4 bootloader
- hlte: fix cdrom in mount usb storage, thanks to @Chenglu
- jewel: use cm kernel with new layout partitions to fix charger
- hammerhead: revert to using cm kernel instead of stock
- falcon_gpe: use unified falcon device with init started script to swap fstab f2fs for ext4
- New: d2dcm (d2lte)
- lt02wifi: support fb2png screen shots
- loki fix for zip installers broken after unified devices releases
6.18.7 (25.02.2014)
- enable full touch gui build through re-distributable libtouch_gui (v1.01)
- merge "Fix mass storage in recovery"
- merge remote cm-11.0 changes
- loki: add support for unified devices
- fix loki user setting could be overridden on edify install_zip commands
- Galaxy S4 Qualcom variants: use new unified device "jflte" for all variants
- loki: show the enabled/disabled state in menu
- more comprehensive menu text display for /data/media/0 toggle
- fix potential memory leak in /data/media/0 toggle
- Galaxy S3 Qualcomm variants: use unified dlte recovery image
- New: Galaxy S2 Epic 4G Touch - SPH-D710 (d710)
- New: Samsung Galaxy Tab 3 7.0 SM-T210 WiFi (lt02wifi), credits to gr8nole and ketut.kumajaya
- New: ZTE Warp Sequent - N861 (warp2), credits to jetx2x
- New: ZTE Awe (nex), credits to cooldudezach
- New: HTC Rezound (vigor)
- merge: "P31XX: use landscape background"
- fix virtual keys on devices with 1024 pixel width resolution
- huge cleanup and potential bug fixes
- fix all compiler warnings
6.15.3 (13.02.2014)
- update superSU to 1.93
- sync sources
- fix recovery reboot command (adb and shell) by adding the init sys.powerctl property control
- merge "Fix mkfs.f2fs calling in roots"
- merge "Fix mass storage in recovery"
- fix display current path when navigating backward in folders
- Nandroid Simple Logging: toggle logging of file names during nandroid to keep screen progress while speed up nandroid operations for some devices
- increase NICE_INTERVAL to 300 msec (faster backup/restore on some devices)
- hide unused settings in Nandroid Settings menu (if we disable all progress on screen, hide non valid options)
- re-order nandroid settings menu
- add a toggle for fall back to pre-built update-binary to permit use of older update-binary in zip packages (doesn't persist on reboot).
this will fix the assert errors due to outdate update-binary. It could still be affected by assert error on device name getprop. However, that one is easier to fix by end users by editing updater-script. This is a workaround. The best is to hammer your ROM cooker to update his scripts and binaries
- setting for signature check toggle on zip updates will be now saved on reboot
- Aroma File Manager: mount vold managed volumes on launch from recovery
- Free Browse Mode: make it possible to install from any custom path even ramdisk
- Free browse mode: fix exceptions when setting up custom path
- Free browse mode: mount known volumes during setup
- Free browse mode: better handling of /data/media devices
- Free Browse Mode: mount vold managed volumes when navigating in
- HTC One variants (m7): fix charger
- HTC Evo 4G LTE (jewel): fix charger
- HTC Evo 4G LTE (jewel): update to new Sense 5 partition layout (/data/media)
- HTC Evo 4G LTE (jewel): use exfat modules for much faster backup speed to exfat cards
- New: Moto G variants (falcon): xt1028 xt1031 xt1032 xt1033 xt1034
- New: Moto G Google Play Edition (falcon_gpe)
- New: Galaxy Note 8.0 LTE (n5120) support
- New: HP Touch (tenderloin), no touch
- fix potential logging issues
- fix compiler warnings
- clean up code and misc fixes
6.13.1 (06.02.2014)
- HTC One variants (m7xx): fix charger bug
- Nexus 5 (hammerhead): use stock kernel to fix graphic issues
- LG G2 variants (d80x, vs980, ls980): add faster exfat backups using exfat modules from samsung (credits @dorimanx)
- LG G2: add d805 and d806 support
- Galaxy S4 variants (jflte): derp fix kernel random hang on boot
- SGH-I757M (celoxhd): use exfat static drivers
6.12.8 (30.01.2014)
- time and date menu text formatting and order
- version display edit
- add ntfs write support to devices using kernel modules instead of fuse
- loki: merge "Support LG Optimus F7 ZV5_02"
- zip installer: update loki binaries for LOKI devices
- zip installer: use new update-binary sources
- add NTFS kernel module support for more Samsung devices
6.12.2 (28.01.2014)
- manually set time and date in recovery
- support Qualcom time daemon to sync time with main system (credits to dougiebee)
- support RTC offset hack for Qualcom devices without a proper time daemon in system ROM (credits to dougiebee)
- option to drop to system set time and date commands (credits to dougiebee)
- set default nandroid compression level back to low
- roll out exfat-nofuse sources from dorimanx into various kernels from Samsung and other brands
- code fix and cleanup
- New: Oppo N1
6.10.6 (23.01.2014)
- update SuperSU to 1.91
- merge android_system_core changes to adb to fix push to extra storage paths
- do not use performance mode during install zip: fixes hang on unmount /system in updater-script when usb cable is connected
- i9505 ans US variants: update kernel to fix random hang on boot
- update to CWM 6.0.4.7
- merge "Fix up bu restore"
- ROM Manager: workaround to backup/restore to/from external storage
6.10.2 (20.01.2014)
- enhance touch init (fix touch on some Sony devices)
- really fix reading device max brightness value
- loki: merge "Support Open EU LG Optimus F6 and US Cellular Optimus F7"
- New: HTC One X+ (enrc2b)
6.10.0 (18.01.2014)
- read the device max brightness setting to fix brightness toggle on some Sony devices
- merge: "Populate mount menu with new mount/format matrix" - final version
- merge: "Use cat for adb backup."
6.09.8 (16.01.2014)
- merge: "Populate mount menu with new mount/format matrix"
- New: Moto X variants: US Cellular (xt1055), Sprint (xt1056)
- New: Galaxy Tab 2 P3110 (p3110)
6.09.6 (15.01.2014)
- do not error on missing sd-ext when wiping dalvik cache
- merge: "su: Update for latest su daemon compatibility"
- merge "Clean up c formatting - 1"
- merge "Remove "Go Back" option from verify root and recovery options"
- merge "Fix potential chmod failures"
- merge: "Add a copy of the updater binary to the recovery resources"
- merge: "install: Support downgrade scenarios"
- merge: "install: Fix possible overflow condition in the updater "scanner""
- merge: "minui: do not use flexible array initialization"
- merge: "correctly mount tmpfs as /tmp in recovery"
- New: Sony Xperia SP (huashan)
- New: Sony Xperia T (mint)
- New: Samsung i9192 (serranodsub)
- New: Motorola Moto X variants: VZW (xt1060), GSM (xt1058), TMO (xt1053)
- New: Samsung Galaxy Note 10.1 LTE (n8020)
6.09.2 (12.01.2013)
- TWRP: merge "support use TW_USE_MODEL_HARDWARE_ID_FOR_DEVICE_ID"
- toggle prompt on low free space during backup
- SuperSU update to v1.89
- loki: merge "Support LG Vu 3."
- code cleanup
- New: US Cellular CH-R530U (d2usc) support
6.08.9 (04.01.2013)
- gesture action defaults changed
- long press and lift gesture action is now triggered after finger pressed for more than 1 sec
- do not include fb2png on non supported devices
- stop always rebuilding aroma intermediates
- Update: Samsung Exhilarate SGH-I577 (exhilarate)
- New: Galaxy Express AT&T (expressatt)
- New: Asus Transformer Pad TF300T (tf300t)
- New: Asus Transformer Prime TF700T (tf700t)
- New: HTC Evo 4G LTE (jewel)
- New: LG Optimus 4X HD P880 (p880)
- New: Galaxy Tab 3 8.0 SM-T310 - Wifi (lt01wifi)
- New: Galaxy Tab 3 8.0 SM-T311 - 3G (lt013g)
- New: Galaxy Tab 3 8.0 SM-T315 - LTE (lt01lte)
- New: Galaxy Note 3 Verizon (hltevzw)
- New: Galaxy Note 3 Canada (hltecan)
- New: Sony Xperia Z1 (honami)
- New: Sony Xperia ZU (togari)
6.08.7 (03.01.2014)
- fix Free Browse Mode folder cannot be changed in menus once first setup
- add back custom format fstype using vold (now patched in cm-11.0 thanks @cyanogen)
- disable journalling when formatting non voldmanaged extra storage in ext4 fstype
- merge "recovery: Add support for performance control"
- update CWM to v6.0.4.6
- loki: sync sources (support LG G2 D80010o)
- default backup compression level is now 5 (medium)
- v500: fix background width to 1200 pixels
- e970: fix OTA assert line breaking zip installer
- New: HTC Desire 601 (zara)
- New: HTC Droid DNA (dlx)
- New: Samsung Galaxy Grand Duos GT-I9082 (i9082)
6.07.8 (28.12.2013)
- fix exiting "pause on logs" mode with virtual keys caused erroneous validation
- fix exiting screen off mode with hardware key could cause erroneous validations
- fix some devices could not exit "pause on logs" mode with screen touch
- bring immediate touch responsiveness after exiting screen off mode and "pause on logs" mode
- fix erroneous first menu validation when exiting screen off mode on some devices
- fix long press and move action could be triggered while swiping outside menus and returning to first touched area
- increase threshold for long press and move action for easier triggering
- small touch scroll optimizations
- improve touch responsiveness on low res devices
- code clean-up and optimization
- fix log text could overwrite clock/battery icons on some low res devices
- after successful zip install with sideload, hide the install background icon
- after installing zip with sideload, do not trigger "pause on logs" mode
- loki: sync latest sources (support LG G2 VS98012b)
- New: HTC One Verizon (m7vzw)
- New: Galaxy Note 3 International, Sprint and TMO (now built with cm-11.0 device tree and kernel)
- New: Galaxy S Relay 4G - SGH-T699 (apexqtmo)
- New: LG G Pad 8.3 (v500)
- New: Samsung Galaxy Premier I9260 (superior)
- New: Samsung Galaxy Mega 6.3 I9200 - SGH-i527 (meliusltexx)
- New: Samsung Galaxy Mega 5.8 i9150 (melius3gxx)
- New: Galaxy S i9000 support (galaxysmtd) : still needs cat /proc/mtd to add in extra.fstab
- New: Galaxy S3 verizon - SGH-I535 (d2vzw)
6.05.6 (21.12.2013)
- better fit text logs on non HD devices: stop slightly overwrite of bottom virtual keys separation bar and clock/battery area
- fix logs overwriting bottom virtual keys and progress bar in sideload mode
- add 5 extra partitions support in nandroid: can be added in fstab and will be auto detected
- custom backup and restore menu: move reboot item to top of partitions list
- custom backup and restore menu: auto hide all unused items
- advanced menu: hide /data/media toggle for non datamedia devices
- sync loki sources: add new LG devices
- SuperSU update to 1.86
- busybox: merge @Chenglu changes to support selinux (no tar --selinux yet)
- huge code clean ups and fixes
- New: LG G Pad 8.3 (v500)
- New: Samsung Galaxy Premier I9260 (superior)
- New: Samsung Galaxy Mega 6.3 I9200 - SGH-i527 (meliusltexx)
- New: Samsung Galaxy Mega 5.8 I9150 (melius3gxx)
- New: Galaxy S i9000 support (galaxysmtd) : still needs cat /proc/mtd to add in extra.fstab
- New: Galaxy S3 verizon - SGH-I535 (d2vzw)
- Note 3: fix device name to hlte
- Note 3: ramdisk changes to better handle enforced selinux and usb mount storage
- Note 3 (hlte): add modem support in backup/restore
- Note 3 (hlte): repack on @Chenglu ramdisk to fix time
- Note 3 (hlte): fix boardconfig for correct ums lun path (mount usb storage)
- i9100/n7000: add extra.fstab support
- i9100/n7000: use built in kernel exfat modules for faster writes to exfat cards
6.04.0 (14.12.2013)
- fix twrp backup/restore default mode
- save loki support user setting (default is now disabled)
6.03.8 (13.12.2013)
- Galaxy Note 3 - n9005 (lt03ltexx)
- add custom backup and restore options to main nandroid menu for each storage volume
- ditch stock cwm limited advanced restore function
- add toggle to switch between TWRP/CWM as default backup mode
- ors: backup mode is now the default backup mode set for all recovery session
- ors: smart restore mode to override main backup mode depending on path we restore from (TWRP vs CWM auto detection)
- backup/restore validation menu moved to top in custom modes
- sanitize rom name for backup: exclude "&" symbol and fix compiler warnings (size_t)
- when deleting backups, do not exit the menu each time
- fix new line in process_volumes()
- merge: "Don't return immediately from reboot commands."
- merge: "Enable incremental builder to find files that moved"
- merge: "Support recoveries without CONFIG_EXT4_FS_XATTR"
6.03.5 (11.12.2013)
- Nexus 5 (hammerhead) support
- rebase on KitKat Android 4.4.x cm-11 branch
- restore NICE_INTERVAL to 100 for faster refresh of progress bar during nandroid restore
- Samsung phones: use built in kernel exfat/ntfs modules + fix selinux permissions to support exfat/ntfs read/write
- fix format to any user fstype without direct call to vold functions as it was no longer supported in cm-11.0
- proper ext2/ext4 support on extra storage volumes
- fix looping into readlink for boot/recovery partitions
- Samsung: add selinux permissions for preload partition
- if minivold fails to mount a voldmanaged volume, still drop to system mount (support ext2/ext3 mount)
6.02.1 (08.12.2013)
- loki: fix new line in ui_prints
- Nexus 7 (2013) deb and flo: fix background image size to better fit screen
- Galaxy Note 8.0 GSM (n5100): fix touch at kernel level for recovery and aroma, credits to @nickdollahz
- Galaxy Note 8.0 Wifi (n5110) support
- Galaxy Note 2: stop flashing sensors on boot (credits @AndreiLux), use built in kernel exfat modules (big thanks @wanam)
6.01.7 (07.12.2013)
- loki: update to v2.1 latest sources
- loki: use libloki_recovery for easier maintenance + clean-up the code
- loki: update to latest sources
- loki: fix all compiler warnings
- loki: remove licence in header file as requested by author
- fix get size of boot and recovery partitions from device block name link on some devices (yet another round, for good this time)
- LG G2 (d801): fix assert in zip installer
- Samsung Galaxy S2 Skyrocket i727 (skyrocket) support
- Samsung Galaxy W - GT-I8150 (ancora) support
- Samsung Galaxy S Plus i9001 (ariesve) support
6.01.2 (03.12.2013)
- fix error log when changing backup format for non datamedia devices
- fix celoxhd vibrator thanks @titanic_fanatic
- support LG G2 Int (d802), LG G2 AT&T (d800), LG G2 TMO (d801), LG G2 Verizon (vs980), LG G2 Sprint (ls980)
- support LG Nitro HD AT&T (p930)
6.01.0 (01.12.2013)
- fix settings file and themes could not be saved/restored on non data media devices
- fix various issues with non data media devices (new vold names)
- settings path (/data) is unmounted only on recovery start and not on every settings refresh
- move all recovery setting files/paths to a common header file
- fix Atrix HD mbm886 compiling
- fix success/failure display when copying files
- crespo (Nexus S): revert to cm-10.2 kernel sources
6.00.8 (30.11.2013)
- merge selinux backup/restore changes from @xiaolu
- by default, enable selinux context backup/restore
6.00.7 (30.11.2013)
- fix unpredictable first touch on some devices
- support MTK devices backup and restore of boot, recovery and uboot
6.00.5 (29.11.2013)
- fix potential memory overflow on elapsed timers
- use clock_gettime(CLOCK_MONOTONIC) for more reliable elapsed timers
- fix virtual keys won't repeat for some devices since recent cm device tree updates
- update SuperSU to v1.80
- resync sources for fixing selinux permissions on lost and found folder
- Galaxy S3 US variants (d2spr, d2tmo, d2att): fix vold dropping to fuse instead of exfat kernel module
- i9500: use adam 3.5 kernel + built in exfat + ntfs, credits @wanam
- Galaxy S Relay 4G - SGH-T699 (apexqtmo)
- Galaxy Note 8.0 (n5100)
- Galaxy S2 HD LTE - SGH-I757M (celoxhd) credits @titanic_fanatic
- Nexus 7 (2013) LTE (deb)
- LG Optimus G Pro GSM (e980)
- LG Spectrum 4G - vs920
- Motorola Atrix HD
- Galaxy S4 int + US: do not show unsafe volumes in mounts and storage
6.00.0 (24.11.2013)
- fix settings file could be left opened in rare circumstances
- make nandroid menu easier to edit + fix potential memory overflow bug
- properly fix root apply for 4.3+ systems, credits @Chainfire
- add superSU 1.75, credits to @Chainfire
- rewrite touch code from scratch to optimize events handling
- add touch scrolling kinetics
- fix touch key registration on start
- fix: double tap a menu in full mode could validate first menu
- fix cancel nandroid backup with virtual keys needs to keep cancel button pressed
- when changing gui settings, be able to return to default values
- keep bottom logs row height limited what ever menu size we choose
- get rid of now useless friendly log view mode
- always respect user set minimum log rows to display in bottom of menus
- when setting no touch gui mode, hide virtual keys and set default bottom log lines
- when setting touch modes, show virtual keys by default
- fix gui settings menu order
- theme support through pre-set configuration files
- settings file renamed to force a user migration on update
- add dedicated menu for custom/free browse mode (no more alter existing install zip menus)
- fix couldn't install from last install path when free browse mode was enabled
- move check for root on restart and auto restore settings to open source code
- remove "Custom Backup and Restore" menu from PhilZ Settings menu
- stop double stringify TARGET_COMMON_NAME (device name was shown with surrounding quotes in About menu)
- optimize memory use when browsing for files to install/backup/restore
Older Change History v5.x
5.18.9 (04.11.2013)
- add option to disable all nags on exit (root, flash recovery)
- add menu to root system and verify recovery
- code clean-up
5.18.7 (03.11.2013)
- optimize Install zip menu + order entries
- merge "minui: Allow devices to blank/unblank using LCD backlight" into cm-10.2
- merge "recovery: Add a proper CleanSpec.mk * Clean all the stuff that conflicts with AOSP recovery."
- merge "Add guard makefile for allowing simple recovery build"
- merge "Quickly install from last install path"
- merge "Enable optional swipe based touch controls"
5.18.5 (18.10.2013)
- unmount /data on user request for /data/media devices
- fix bug when reading partition link target
- do not ever log to screen mount/unmount events for sdcards (this will preserve ui_print for USB OTG volumes)
- write recovery version on exiting recovery instead of start: spare an extra partition mount/unmount on start
- Asus Nexus 7 2013 (flo) support
- HTC One AT&T support
- HTC One m7ul, m7spr, m7att, m7tmo: support exfat kernel module instead of fuse
- Galaxy S3 i9300/i9305: add exfat kernel module support in minivold
5.18.2 (15.10.2013)
- merge @Chenglu latest changes for selinux context backup/restore (4.3 ROMs)
- user can enable/disable nandroid backup/restore of selinux context: speed up things for non JB 4.3 users
- fix bug where restore compressed archive from external storage caused vold crash because of busy volume:
- misc bug fixes
- S4 mini (i9195/i9190): use exfat/ntfs ko modules with custom kernel from samsung sources (thanks to @wanam)
- Xperia Z (yuga): use stock Sony + exfat ko module instead of fuse
- Galaxy S4 ATT and VZW: support auto loki on flash
5.17.9 (13.10.2013)
- fix min brightness value in auto dim mode from 25 to 10
- merge temporary @Chenglu fix to backup/restore selinux context for 4.3 ROMs
5.17.8 (13.10.2013)
- merge "Make "one confirm" the default action. Create .many_confirm to restore all the extra no options"
- stop useless mount of /data in write_recovery_version() as it will be mounted later
- i9195: use custom kernel compiled from samsung source update1
- i9195: enable use exfat/ntfs ko modules + migrate to cm-10.2
5.17.7 (12.10.2013)
- merge su changes: "Add required libraries to list." into cm-10.2
- set lowest brightness value from 25 to 10
- i9505: use new custom kernel from google sources to fix ext4 corruption, exfat and ntfs kernel modules (huge thanks to @wanam)
5.17.6 (09.10.2013)
- Merge "Recovery: Loki patching support" into cm-10.2
- Merge "Support f2fs format"
- Fix f2fs formatting through edify scripting (roots.c entry)
- Merge "Don't print any messages regarding sd-ext to the UI"
- merge touch changes into cm-10.2
- add extra.fstab file support to provide blk_device2, fs_type2 and fs_options2
- use blk_device2 to partition sdcard and to format in ext2/ext3 for voldmanaged volumes
- fix Aroma file manager cannot see external storage due to minivold/fuse
- fix ors scripting for new cm-10.2 fstab format
- ors backup target: ensure user doesn't enter a non valid volume mount point in recovery settings file
- fix Get_Size_Via_statfs() handling of /data/media storage with new vold
- improve get_ors_backup_volume() call
- serious cm-10.2 bug: do not show partition sdcard menu for voldmanaged devices unless they have a valid blk_device2
- allow custom format of voldmanaged volumes if fs_type == auto even if they cannot be partitioned (!can_partition)
- format_device() could fail to wipe /sdcard on /data/media devices
- format_volume() could fail to wipe /sdcard on /data/media devices (edify scripting)
- ensure_path_unmounted() could not unmount /sdcard path on /data/media devices
- Find_Partition_Size() can now get /data size partition from a /data/media path (/sdcard)
- misc bug fixes for cm-10.2 and vold
- remove included device_config.h and put all additional BoardConfig.mk in one file (easier port for devs)
- ignore Rainbow commit
- improve write_recovery_version() to also unmount /sdcard on non /data/media devices
- favour kernel module over fuse to mount exfat volumes
- add get_device_mmcblk() function to read real device /dev/block path from blk_device link
- fix dd raw backup and restore to better detect real device block (efs / modem backup and restore)
- nandroid backup and restore speed fix
* spare some pthread_mutex_lock(&gUpdateMutex) on ui_delete_line() call
* do not hammer with fputs to write nandroid log
* increase NICE_INTERVAL from 100 to 350 msec to lower screen refresh rate during nandroid jobs
- do not define S4 i9505 with BOARD_HAS_SLOW_STORAGE to re-enable displaying all backup stats by default
- allow sideload to be used in conjunction with other commands.
- merge: Array max is incorrectly calculated, can lead to missed events for ids > MAX_DEVICES (thanks @jeboo)
- sync sources to update su
- merge "loki: Update to 2.0, Add support for LG G2 (and device trees in general)"
- update cwm to 6.0.4.4 + sync sources
- i9505: move to wanam 1.6 kernel : small size, adb root, touch, force load of exfat
- i9505: support ntfs through ko modules
5.15.9 (26.09.2013)
- get rid of = and space in ors script (merge from twrp) + merge to cm-10.1
- touch: drop unwanted devices to handle touch events for some devices (Xperia Z...) + merge to cm-10.1
- touch: improve scroll and make it more friendly
- touch: fix slide right/left actions triggered after a scroll ending outside menu
- touch: improve long press and lift + long press and move actions and lower delay to 0.6 sec
- touch: in double tap and highlight only modes, fix unwanted scroll down while selecting a menu after a scroll
- touch: misc bug fixes + cleaner code
- HTC One X (endeavoru): repack with 4.18 stock ramdisk to fix write/read speed
- HTC One S (ville): add compatibility with new /data/media hboot
- SGH-T599N (codinamtr): rebase repack on Unjestified Dev tree to fix adb/mount usb storage
- Xperia Z: fix touch handling
- Motorola Droid RAZR M (xt907)
- Motorola Droid RAZR HD GSM (xt925) and US (xt926)
- Galaxy S Blaze 4G - SGH T769 (t769)
- Galaxy Exhilarate - SGH-I577 (i577)
- Galaxy S4 mini i9190 (serrano3gxx)
- Galaxy S4 mini i9195 (serranoltexx)
- Micromax A57 (a57)
- LG Optimus G ATT (e970)
- LG Optimus G Canada (e973)
- LG Optimus G Sprint (ls970)
- LG Optimus G Intl (e975)
5.15.0 (21.09.2013)
- fix bug where android_secure could not be restored
- add png files for 320px width devices and fix pico device tree for screen resolution + merge to cm-10.1
- selectively force tar wrapper on yaffs2 file systems (better handling of make update.zip from ROM and ors backup in cwm format)
- fix touch support for some Samsung phones
- merge latest aroma 1.91 changes to fix theme loading bug
- fix user choice format sdcard options
- i9505: powered by stock 4.3 Samsung kernel compiled and fixed by @ausdim: huge thanks to him
- i9505: fix adb root, sideload, exfat loading, time setting, touch and brightness
- i9500: fix flashing of cm-10.2 and AOKP 4.3 ROMs
- Galaxy S4 US variants: fix flashing of cm-10.2 and AOKP 4.3 ROMs
- i9100/n7000: add again the bootloop workaround (init swap from older version)
- fix /data/media toggle display was not correctly refreshed
- remove compute_archive_stats() file number calculation and replace with archive size for faster restores
- increase nandroid size check interval from 3 to 5 sec for slow storage devices (i9505)
- merge exclude google music cached files from nandroid backup
- merge new tar.gz wrapper into cm-10.1
- add pigz fast compression (-1) option + merge to cm-10.1
- add backup and restore of /data/media to external storage
- fix left free space warning when backup in compressed tar.gz mode
- fix partition sdcard menu not showing on devices without a second storage (cm-10.1 only)
- misc menus cleanup
- when key repeat is disabled: fix reboot when turning on screen after it was auto-blanked
- when key repeat is disabled: fix dim screen will not occur and only blank screen event was triggered
- fix dim/blank screen issues after reboot timer was reached and USB cable was connected
- fix various bugs with key handling through ui_wait_key()
- after screen is turned on, next touch event will now be considered (better touch response)
- more stable blank screen gesture actions (mainly on long press and move gesture)
- merge remove install update.zip from cm-10.2 to cm-10.1
- support new phones:
* Sony Xperia Z (yuga)
* Samsung S3 Sprint SPH-L710 (d2spr) - d2tmo repack
* Galaxy Exhibit Variants - SGH-T599N (codinamtr) - credits to @Unjustified Dev
* Galaxy Grand Duos (i9082) - credits @chotu222
* Galaxy S Plus - i9001 (ariesve) - thanks to @alireza7991
* HTC One V (primou) - credits to @doga.ozkaraca
* Huawei Acsend P1 U9200 (viva) - credits to @kiprap
5.11.2 (19.08.2013)
- ramdisk fixes for most devices to fix adb and sideload
- n7100/n7105/i317M: update to adam 2.7 kernel sensor free
- i9500: migrate to wanam sensors-free kernel v1.8 (fix boot into recovery delays, add back ntfs support)
- i9500: do not mount /data in postrecoveryboot.sh
- i9505: migrate to audism special repacked kernel (13.1) to fix poweroff bugs + update exfat kernel modules
- i9505 variants: revise ramdisk for stock based kernel edition
- i9100/n7000: update superuser to latest version
- i9100/n7000: stop patching kernel for emmc brick bug and replacing init for bootloop fix on unattended reboot
- n7000: do not include stock recovery and redbend_ua binaries to fit zImage size
- properly unmount /data after loading recovery settings on start
- properly unmount /data on recovery start for datamedia devices as per last cm changes
- mount /data before write_recovery_version() checks
- move advanced and twrp nandroid code to separate included file for easier code maintenance with cm sources
5.11.0 (17.08.2013)
- update to cwm 6.0.3.7
* Fix issue where android device manager, etc, dont actually wipe data.
--wipe_data issues via /cache/recovery/command will now completely format data.
- i9505: update to audism kernel v13 (smaller size to fit new ntfs/exfat format options) + new exfat modules
- jfltexx (i9505 cyanogenmod version) is now built properly using new TARGET_RECOVERY_INITRC in BoardConfig
- release i9505 cyanogenmod kernel based version
- n7100: update to adam kernel v2.7 for smaller size to fit ntfs/exfat format options
- endeavoru (HTC One X): do not use NTFS modules to fit recovery size
- i9500: remove fb2png and ntfs support because of small recovery size
- pico: remove exfat and ntfs support because of small recovery size
- clean up code when calling format_device() for sd-ext
- fix repacking script for toro, toroplus, grouper, protou
5.10.8 (14.08.2013)
- update to cwm 6.0.3.6
- merge cm sources: shrink cid
- fix text file formatting for dosfstools/Android.mk (PC to UNIX)
- sync sources
5.10.7 (10.08.2013)
- add option to toggle whole progress during backups for slow phones (hide size stats, progress bar and do not log backed up files)
- reorganize power options in a single menu
- update Aroma File Manager to latest sources
- port mkdosfs from TWRP + update to latest 3.0.16
- add mkextfatfs and mk_ntfs into recovery
- add support to choose format type for vfat storage: default, vfat, exfat, ntfs, ext2, ext3, ext4
- add preload partition on /etc/fstab generation: Now supports 'mount /preload' command in edify and recovery shell (by Ryuinferno)
- fix mount exfat/ntfs volumes under recovery for fs_type == auto
- fix partition sdcard auto for fstype
- merge cm-10.2 changes
* cwm: Add liblog dependency
* Add a recovery version variable, the releasetools want this now
* Use fstab v1 as a default
* Fixes for Superuser
* su installation and detection updates for 4.3
* su 4.3 detection fix
* update to v6.0.3.5
* add su daemon runner
* unset immutable bit on install-recovery.sh
* Don't treat link-time warnings as errors when linking with libbusybox
* Fix roots.c to use fs_mgr
* move key loading to verifier code. Add an option to verifier_test to load keys from a file, the way the recovery does.
* recovery: save logs from the last few invocations of recovery. Extends the last_log mechanism to save logs from the last six invocations of recovery
* recovery: ignore voldmanaged volumes
* update wipe data option confirmation
* merge "Revert "Use fstab v1 as a default."" into cm-10.2
- misc code cleanup
5.10.0 (25.07.2013)
- reorganize Backup and Restore menu:
* remove stock CWM Advanced Restore function
* move choose backup format to Misc Nandroid Settings menu
- add Misc Nandroid Settings option to disable nandroid size progress
- nandroid size progress is now disabled by default for specific phones (i9505)
- merge cm-10.1 changes:
* remove useless Fix Permissions menu
5.09.8 (24.07.2013)
- new time set function using TZ environement variable (should fix issues for some i9505 users)
- remove warning about selinux file_contexts (log only)
- Update CWM to v6.0.3.4
* merge more headless fixes from cm-10.1
- i9505 ramdisk: fix init.rc adb and sideload
- increase refresh backup size stats delay from 0.5 to 3 seconds (a proper fix will follow for i9505 users)
- fix some /data/media files could be included in TWRP backup mode
- It's summer time: open source many parts of PhilZ Touch
* settings file config
* all misc nandroid settings menu setup
* get rom name function to stamp backup folder name
* free browse mode and custom install zip folder
5.09.2 (21.07.2013)
- fix compiler warning in nandroid.c / nandroid_callback()
- remove non used virtual_keys images from ramdisk
- resync sources
- merge cm-10.1 changes:
* SELinux: don't suppress the "no file_contexts" message on the UI
* add --headless mode
5.09.1 (20.07.2013)
- add NTFS support for external storage
5.09.0 (19.07.2013)
- exfat-fuse: use existing external/exfat and external/fuse branches
- exfat-fuse: remove old implementation for prebuilt binary
5.08.9 (18.07.2013)
- compile mount.exfat-fuse static binary along recovery source to support exfat on cm-10.1 kernels
- fix Aroma File Manager compiling for non NEON devices
- clean up code (partition sdcard menu)
- fix broken touch after screen wake-up for some phones (i9500)
- resync sources
5.08.5 (11.07.2013)
- Compile Aroma File Manager (by amarullz) zip installer under recovery:
* either compile whole recovery, zip will be created at first pass
* or only compile aroma zip installer in two pass:
1- mmm bootable/recovery/aromafm
2- mmm bootable/recovery/aromafm/tools
* output: [target_out]/aromafm_out/aromafm_[DeviceID].zip
- detect aroma compatibility with non NEON devices during compiling
- use less conflicting flags: TARGET_NAME --> TARGET_COMMON_NAME
5.08.0 (07.07.2013)
- improve nandroid progress bar update
- fix recovery was not prompting when backup estimated size is larger than free space
- add ors backup support for twrp format requested by BillGoss
- ors backup: when no backup name is given, generate it using same way as nandroid operations (time stamp + rom name tag)
- support separated compiling for Loki patched devices (S4 AT&T and Verizon)
- i9505: revert some changes to fix time bug for some users
- Galaxy S4 US variants: repack around Audism stock JB 4.3 kernel v3 + Samsung exfat modules + revert use of mkefs for partition corruption issue
- fix missing break in set backup compression value menu (misc_nandroid_menu())
- misc clean up code
- sync latest sources
5.07.6 (05.07.2013)
- update version 6.0.3.3
- add exfat-fuse 1.0.1.362 / 2.9.2 optional support by enabling USE_EXFAT_FUSE_BIN CFLAG in BoardConfig (exfat support on cyanogenmod repacks)
- i9505: use Audism kernel v3 (Stock Samsung sources) to fix partition corruption without additional code and for better exfat support
5.07.1 (01.07.2013)
- i9100G support
5.07.0 (30.06.2013)
- fix "unknown volume for path /res/images/koush.png" on boot (do not search for a volume on ramdisk path)
5.06.8 (19.06.2013)
- fix bug introduced in v5.06.5: folder entries duplicated in some choose file menus (custom and twrp restore modes, regenerate md5 selection menu)
- by default, if /data/media/0 exists, it will be used as internal storage. You can still alter it in Advanced menu to force /data/media
5.06.7 (17.06.2013)
- Galaxy R/Z (i9103) support, thanks to Adam77Root
5.06.6 (13.06.2013)
- fix multi-zip flash "select/unselect all" persisting (static int select_all --> int select_all)
- add sdparted option to partition in ext4 fstype
- enable partition sdcard when non vfat fstype2 option is used in recovery.fstab
- merge cm-10.1 changes (6.0.3.2 Update 8):
* Merge "recovery: Fix adb backup" into cm-10.1
* Merge "Remove (un)mount option for datamedia partitions" into cm-10.1
* recovery.c: Fix the potential segmentation fault: Extral newline can trigger recovery segmentation fault
- Nexus 10 (manta): revert font changes since they were now merged in cm-10.1 device tree
- i9505 international: migrate to jfltexx device tree and repack with newer exfat modules
- Galaxy S4: support US variants
- misc code cleaning
5.06.4 (06.06.2013)
- fix touch repeat on capacitive virtual buttons for some devices
- Pico: ramdisk changes to enable backup size detection for mtd partitions (boot, recovery, misc)
5.06.3 (05.06.2013)
- HTC One Sprint and TMO variants support
- Galaxy S3 - T-Mobile (d2tmo): ramdisk changes to fix exfat (load modules using recovery-loader script)
5.06.2 (04.06.2013)
- Galaxy S3 - T-Mobile (d2tmo) - SGH-T999 support
5.06.1 (02.06.2013)
- HTC One: move to new m7ul device tree
5.06.0 (01.06.2013)
- support dual modem devices nandroid operations (dual sim, i9505)
- merge cm-10.1 changes: support version 2 (2048-bit e=65537) keys in recovery
- Nexus S/4G (crespo/4g): add mmcblk names to recovery.fstab to fix /data mount
- HTC Desire X (protou): support both protou-ics and protu-jb fstab
5.05.9 (31.05.2013)
- do not write backup size progress to log file
- show total time after restore job
- write backup path to log
5.05.7 (30.05.2013)
- use bigger 23x41 roboto font for HD devices (i9500, i9505, Nexus 10)
- do not uselessly statfs partition to refresh backup size progress if we're under NICE_INTERVAL (100ms)
- show backup compression 0% when backup is tar format and compression is disabled
- fix get time events during nandroid jobs and touch events
- universal scroll sensitivity and row height settings (fix hypersensitivity for HD devices)
- fix backup size progress for datamedia devices (special thanks to pickandwhammy for the time he spent in debugging this and providing logs)
- merge Get_Folder_Size() changes from twrp 2.5
- misc logging improvements
- small bug fixes
5.05.0 (26.05.2013)
- fix potential memory overflow during computing of size stats in backup
- fix /efs backup not possible for devices without /preload, unless preload menu was selected once
- fix custom nandroid and twrp backups for yaffs2 devices (do not force tar format on these)
- misc fixes for supporting more devices mainly during nandroid jobs:
* allow use of device2 for raw backup and restore operations (using dd/cat)
* better nandroid support when device names in fstab do not match actual mtd name (revert statfs for volume->device)
- revert cm-10.1 changes: write correctly fstab info in log (do not print to stderr)
- merge old custom_backup folder to cwm backup folder
- old .efs_backup and .modem_bin folders also should be moved to clockworkmod/backup
- .aromafm folder is now aromafm (no more hidden folder for this)
- add regenerate md5 sum option for nandroid backups (use with caution)
- revert inverting fstype and fstype2 (see github commit for more info on this)
- fix nandroid backup fails before generating md5 for /external_sd devices when card is not inserted/mountable (.android_secure check)
- fix falling back to system mount command will fail when calling ensure_path_mounted(filename)
- HTC Desire X (protou) support added
- HTC Droid Incredible 4G LTE (fireball):
* add support
* allow sd-ext and mount external sd in ext4
* allow backup/restore of /radio
- Galaxy S4 - i9505:
* support emmc partitions size detection during nandroid jobs
* fix exfat mount for some sdcards (thanks to chenglu)
- Nexus S/4G (crespo/crespo4g):
* allow raw + yaffs2 backups for /efs and /radio
* allow size detection for MTD partitions during nandroid backup
* fix device name to Samsung Nexus S
* repack with stock GB kernel to fix USB mount in recovery
- Nexus 10: enable efs backup and restore
- Galaxy Nexus (maguro/toro/toroplus): enable efs backup and restore
5.03.8 (20.05.2013)
- support HTC Droid Incredible 4G LTE - fireball
5.03.7 (19.05.2013)
- merge cm-10.1 changes: add getprop
- HTC One (m7) support
- i9505 fix graphics, date and cache/wipe issues (Big thanks to Chenglu for that)
- Samsung Nexus S (crespo) and Nexus S 4G (crespo4g) support
5.03.2 (16.05.2013)
- fix scroll down on touch issue when in double tap and highlight only modes
- support Galaxy Nexus GSM (maguro), Verizon (toro) and Sprint (toroplus), i9500 and i9505 Canada/Bell (jfltecan) and T-mobile (jfltetmo)
- merge cm-10.1 changes: add getprop
5.03.0 (12.05.2013)
- fix backup size progress in twrp mode
- improve code for backup stats during nandroid jobs
- display full backup stats (total size, compression ratio, elapsed time) at end of backups
- merge last cm-10.1 updates:
* fix nandroid cmd command did not load volume table
* support nandroid dump/undump commands
* nandroid backup command line still segfaults
* silent log when mounting /data/media
Touch:
- add 3 new color palettes (30 colors total): dimmer gray, yellow and gold
- add toggle for header custom color
- add toggle for battery and clock custom color
- line at bottom of menus will now have same color as menus separator lines
- set new defaults to header and menu text colors
- show backup/restore stats in color during nandroid jobs
- fix touch issue when exiting friendly log or blanked screen, and pressing on virtual buttons
5.02.3 (10.05.2013)
- fix root break for devices with shared recovery partition caused by Whil Wheaton update
- advanced backup size monitoring during nandroid operations
- prompt to cancel backup on low free space (% and absolute)
- live display size stats during backup: total data written, free space left
- support backup and restore of /misc partition for both CWM and TWRP operations
- prevent potential segfault when calling is_data_media_volume_path()
- merge cm-10.1 changes:
* remove adb sideload /tmp/update.zip after flashing to avoid second flash under some circumstances
- fix android_secure could not be backed up under some circumstances (ensure mount of sdcard)
- completely rewritten android_secure support: much simpler code
Touch:
- optimize cancel nandroid job action
- allow cancel yaffs2 nandroid operations
- allow dim screen timeout during yaffs2 nandroid operations
- fix set brightness and auto-dim screen timer for Nexus 7 and Nexus 10
- fix battery stats display for Nexus 10
- restore default actions of real device keys we fake for touch events
- correctly map device virtual keys to default recovery actions
- fix virtual buttons highlight color to match their line separator color (blue)
5.00.8 (05.05.2013)
- support Nexus 7 and Nexus 10
- clean code for non PhilZ Touch buils
- Merge cm-10.1 changes to cwm 6.0.3.2:
* recovery: fix sideload cancel" into cm-10.1
* make_ext4fs support
* auto prompt to root device when booting to main system
5.00.5 (04.05.2013)
- use device specific background images during compile process
5.00.4 (04.05.2013)
- touch code completely rewritten to support more devices (no more calibration needed)
- true touch scroll effect and much improved touch response
- secure touch: robust to wrong selections while scrolling + confirmation before any bad thing
- add option to completely disable touch
- options to restore Koush or PhilZ Touch background images
- restoring default backgrounds (Koush, PhilZ Touch) will apply live (a reboot was previously needed)
- fix touch on HTC Pico, HTC One S and HTC One XL
- restore support for device keys KEY_MENU and Home key (KEY_HOME, KEY_HOMEPAGE)
- add /preload support in twrp backup and restore modes
- mount /system and /data on Aroma File Explorer launch
- fix battery stats error in some circumstances
- i9100/n7000: update CWM Superuser to v1.0.1.8 (through zip installer)
- code cleaning, various fixes and optimizations
- force reset of recovery settings to v5: new settings file name
- backup file name is unchanged so that old settings can still be restored
Older Change History v1 to v4
4.96.6 (28.04.2013)
- support HTC One S (ville)
4.96.5 (27.04.2013)
- change event input handling code to support auto-interpolation
- auto support for devices built-in virtual keys
- enable key repeat for recovery virtual buttons (up/down): now they auto-repeat while pressed
- fix HTC One X nandroid backup was very slow (ramdisk changes)
- fix touch for new N71xx, T889, I317/M repacks based on wanam Adam 2.3 kernel to fix boot delay for non stock kernels
- misc bug fixes and code optimization
4.94.6 (21.04.2013)
- fix compile error for non touch version
- N71xx, T889, I317/M: repack on wanam Adam 2.3 kernel to fix boot delay for non stock kernels
- Fix touch support for HTC One X (endeavoru) and HTC One XL (evita)
- More fixes for HTC Explorer (pico) - work in progress
4.93.9 (18.04.2013)
- Initial support for HTC devices
* HTC One X (endeavoru) support
* HTC One XL (evita) support
* HTC Explorer (pico) support (big thanks to Nihar.G for this port)
4.93.6 (17.04.2013)
- fix reboot to bootloader for phones without download mode
- define default values for CWM Advanced Edition builds to non officially supported devices by PhilZ Touch
- no need to confirm sideload as it can be cancelled
- move philz settings file from /system to /data
- fix compile error for non PhilZ Touch version
- revert temporary assert fix for i9100/n7000 (ramdisk changes):
* do not mount /system in init.rc
* add needed entries in default.prop
- n7000: no more replace init binary to fix /data corruption bootloop issue (ramdisk changes)
4.93.2 (14.04.2013)
- share source for multi-zip installer
- add sideload and print commands support to ors as per TWRP specs
- always ensure sync before rebooting
- disable adb secure
- Update to CWM 6.0.3.1
* allow cancel sideload
* allow sideload install from /cache/recovery
* courier_extended_15x24
4.92.8 (05.04.2013)
>>True support for /data/media/0 for Android 4.2.2<<
First to introduce true JB 4.2 migration: live toggle between /data/media and /data/media/0
This implementation keeps compatibility with stock cwm while giving user option to force /data/media/0
When migrating from or to JB 4.2, you still need to move folders to/from /data/media/0. No one will do it for you
- fix early mount of /data for datamedia devices caused by write_recovery_version()
this could cause errors on some install scripts
- hide some external menus for devices without external storage
- fix Setup Free Browse Mode bug for devices without external storage
- fix Free Browse Mode could not browse up to the root for /data/media devices
- fix Misc Nandroid Settings menu regression for devices without external storage
- fix .nandroid_secure selection in custom backup and restore for devices without external storage
- no more mount internal/external storage when checking for ors script at startup
- do not report custom recovery logs to ROM Manager
- export error log on failure during boot installed packages
- make sure we have all the log posted by users
- misc bug fixes
4.92.3 (03.04.2013)
- properly set time for all recovery session: this will now apply to the time stamp of any file modified (logs, backups...)
- add Daylight Saving Time support
4.91.9 (03.04.2013)
- merge and fix fb2png source: now built as static binary and compatible with RGBX devices (Nexus 4...)
special thanks for this to McKael and a huge thumbs up to talustus for his great support
- silent failure when formatting non existing /sd-ext volume
- use statfs instead of stat in nandroid operations
- misc fixes
- i9100/n7000 zip installer: option to skip flashing superuser using philz_installer.cfg
- i9100/n7000: disable init binary substitution from older LSJ (aka /data corruption bootloop fix)
- i9100/n7000: update clockworkmod superuser to 1.0.1.7 (security fix)
4.91.5 (29.03.2013)
- Support Nexus 4 (mako)
- fix nandroid backup and restore for devices without /modem, /radio, /preload and /efs
- fix recovery functions for devices without external sdcard storage
4.91.2 (26.03.2013)
- fix touch code to support P31xx and N8xxx
- merge cm-10.1 changes:
- nandroid backup: save recovery log to backup folder
- minadbd: remove unnecessary header files.
- add external_sd and efs to /etc/fstab generated by recovery
- revert chmod in write_string_to_file()
4.90.8 (22.03.2013)
- multi zip flash menu will now show the validation menu on top of files list
- added option to select/unselect all zip files in the multi zip flash menu
- touch code fixes: more responsive touch gui on menus. Less skips on bottom virtual buttons
- merge cm-10.1 changes
- update to cwm 6.0.3.0
- fix About dialog was not displaying what it should for non PhilZ Touch builds
- non PhilZ Touch builds are now: CWM Advanced Edition
- fix bug: if Key Repeat was disabled, blank screen will hang up when screen back on
- add beta support for P3100, P5100 and N8000
- i9100/n7000: migrate from Chainfire SuperSU to opensource superuser from clockworkmod
4.89.4 (14.03.2013)
- New Custom Install Zip mode: set a default folder to start with + browse backward up to the root
4.88.5
- toggle menus are now formatted to device screen width (right align menu option)
- add 30mn timezone offset
- merge CM 10.1 commit: Fix segfault with dead symlinks in char** gather_files()
- add extra check for carriage return for get_rom_name function: ensures windobe noobs do not get stuck
4.88.2
- fix: ors backup could overwrite an existing folder and end up with mixed old/new backup images
4.88.1
- migrate from cm10 to new cm10.1 source
- fix fs_type2 is fs_type to maintain ext4 external storage compatibility with fs_type2 entry
- fix redefined MACRO for ITEM_APPLY_SDCARD
- merge cmw 6.0.2.9 changes (vchange only: ignored cwm commit: block google music cache from nandroid operations)
- fix: data partition was always restored in Advanced Restore menu
- in custom jobs: possibility to disable .android_secure from restore/backup as per TWRP/ors specs
- option to auto-restore recovery settings without a prompt screen on reboot
- ors support: fill ORS official specifications and more:
- optimize on boot check for openrecoveryscript command file
- add ors support for backup options: selected partitions, compression and md5 toggle
- fix: as per ors specifications, ors will now restore standard partitions when no options are set in script
- ors restore now supports TWRP and PhilZ Touch custom backup path
- ors-mount.sh: better support for path convfrom main system to recovery mount points
- ors backup target volume can be set by user in nandroid settings
- misc ors log fixes for special partitions ignored in cwm
4.87.6
- fix: show progress during TWRP backup and restore
- auto dim screen on timeout supported during backup and restore operations
- fix header menu could overlap battery stats if they are at 100%
- fix: restore custom rom zip failed because of left debug code
- fix: build custom rom zip from existing ROM would fail to restore if backup format was compressed
- huge performance optimize when building custom rom .zip from existing ROM (only backup needed partitions)
- fix useless edify incompatible code in custom rom .zip (alpha 06 files)
4.87
Backup and Restore:
- menu Custom Backup and Restore can now be accessed in main Backup and Restore menu
- support restore backups from /sdcard/0 (Android 4.2) in custom jobs and TWRP mode
- add support to sd-ext ext4 partition on external storage
- menu to delete custom and TWRP backup images
- auto-reboot option for custom backup and restore jobs
- set .android_secure path in custom jobs
- smart auto detect android_secure for stock CWM backup and restore operations
- fix preload was selectable in TWRP jobs (even if would not actually be processed)
- progress bar is no more overwritten by text
- time and battery stats are shown and refreshed during nandroid operations
- on successful or cancelled nandroid jobs, user background icon is restored
- on cancelled nandroid jobs, progress bar is correctly reset and user background icon is restored
GUI
- User configurable gesture actions
- gestures: double tap, long press/move, long press/lift, slide left, slide right
- always vibrate on long press/move action validation
- actions: show log, change brightness, blank screen, capture screen shot, launch Aroma File Manager
- default black theme without background icon
- toggle clock and battery on top
- header title will be auto-shortened to not overwrite battery and clock on lower res devices
- battery and clock will truly refresh indications every 15 sec
- user configurable dim screen timer
- user configurable turn-off screen timer
- manually adjust brightness (stock kernel doesn't support lower than 65, but recovery binary will accept 25 on custom kernels)
- when double tap mode is selected, you now really need to double tap the same menu to validate it
- menu Set Time Zone moved to GUI settings
- fix Moscow UTC time
Misc
- add support to sd-ext ext4 partition on external storage
- Move Clean before instal new ROM menu to Wipe Data/Factory Reset menu
- fix /system was left again mounted after start up and showing log
4.64
- fix: when disabled, virtual keys would still show for a fraction of a second on start
4.63
- preview support for slide right and double tap gesture actions
- friendly log mode now is final: logs are no more wiped when switching view for all operations (install zip, boot scripts, backup/restore...)
- fix: virtual keys will no more trigger an action at end of your scrolling if touched by case
- fix: virtual keys could remain highlighted under some circumstances
- fix screen capture index was back to 11 when it reached 100 (now it will be 999 photos and reverts to 001)
- fix: toggle background icon prompted for a key since 4.53
- fix: when toggle icon, screen logs are no more wiped
- fix: when change menu size, screen logs no more wiped
- deep revise of touch source to optimize and clean code (scrolling behavior is still same, this will be the next on my todo list)
- misc code cleaning
4.53
- fix user background image was not restored on restart
- TWRP backup and restore support, include full md5 sum support (single and multivolume, compressed and non compressed formats)
- support multiple efs backups in tar format (user request)
- now it is possible to restore from many modem.bin files under clockworkmod/custom_backup/.modem_bin folder to flash them (just name them *.bin)
- fix potential md5 error caused when restoring/flashing some modem.bin files
- fix recovery partition was restored when ever you restore something in stock Advanced Restore Menu
- custom restore option to browse from /sdcard/0 if it exists (this is a temporary workaround for Android 4.2)
- add ext4 support for mounting external storage (i9300 thread request)
- improved the friendly log view gui to include install zip, nandroid, boot scripts...
- enhance logging and user messages mainly in backup/restore operations
- remove useless support for browsable custom aromafm.zip folders (must be in default folder)
- many bugfixes + compiler warnings fix in code
- Clean Phone for a New ROM moved to Custom Backup and Restore
4.35
- Vulnerability fix: setting a fake/corrupted png file as background resulted in a bootloop into recovery
- Vulnerability fix: cancel nandroid operations could result in data corruption if user attempted to directly delete backup from menu or forced a reboot
- Friendly Log View: toggle during install of zip files (manual, multi, on boot) and forced when Show Log from advanced menu
- Pause on show log: Forced in Show Log from advanced menu. Always disabled for multi zip flash and on boot, toggle for manual zip installs
- Install zip menu order changed so that install from internal/external are nearby
- Move reset / save recovery settings to main PhilZ Settings menu
4.31
- add slide left to capture a screen shot from any active menu
- optimized code for cancel nandroid operations
4.24
- Back button now will cancel nandroid backup/restore operations (tar+dedupe) and custom_rom.zip operations
- merge CWM 6.0.2.8 changes (credits to Koush)
4.22
- multi-zip flashing from custom set locations
- after installing a new ROM that wipes recovery settings, on next reboot, you are prompted to restore them from a backup if you have done one
- New menus separator lines that you can show/hide, set colors and transparency. Useful for solid color themes, like Black
- fix default menu highlight transparency was set to a wrong default value
- code optimizing for file checks
- mix code optimizing
4.01
- show / hide bottom virtual buttons
- set number of bottom log rows to show
- misc compiler warning fixes
4.00-b39
- custom background image (png in 350x735 pixels)
- toggle background in preset 27 colors
- toggle background icon
4.00-b35
- fix /preload was always restored during nandroid operations
4.00-b34
- fix preload was again processed on each nandroid backup
- fix nandroid backup name was exiting on first checked missing key and using default noname
- fix output log for backup rom name was wrongly reporting error to open build.prop
4.00-b33
- code cleaning
4.00-b32
- life in color edition
- fix: resetting settings to default now is applied without the need to restart recovery
- small code optimize
- fix logging for file parser and load/save settings
4.00-b30
- nandroid backup/restore with gz compression using pigz (multi cpu threading): toggle between low (3), medium (6), high (9) or disabled
- fix when preload toggle was enabled, preload was processed in custom backup even if it is not selected
- complete rewrite of gui settings toggles: new menus display
- new toggle for touch accuracy
- more menu height settings (useful for high res devices)
- more scroll sensitivity settings
- all settings are now saved to a single .ini file you can edit (detailed values will follow)
- possibility to reset all values to defaults, to export and to import them to/from sdcard
- Nandroid Advanced Restore menu now shows that /preload will be processed with /system
- Misc Nandroid Settings now can also be accessed from Nandroid Menu
- code cleaning and fix compiler warnings
- add show really progressing bar during nandroid restore operations
- fix pigz as static library
- i9100/n7000 ramdisk: fix getprop hack script (thanks to a3955269)
4.00-b22 Recovery (CWM 6.0.2.7 based)
- unmount /system on recovery start to fix some install zip issues
- fix no time zone file message on start when no user time zone was selected
- i9100: fix error 7 was back (better fix later)
4.00-b21 Recovery (CWM 6.0.2.7 based)
- Completely new Custom Backup and Restore menu
- Custom back and restore job list: backup and restore freely any partition combo from old nandroid folder or new custom_backup one
- Restore modem as custom modem.img file or modem.bin (found in Samsung tar roms)
- Backup EFS in tar (overwrite old backup) + img formats (time stamped)
- Restore EFS from either tar or img files
- All backup and restore tasks are now built completely on native nandroid functions: no more calling of many shell scripts
- One shell script only left to handle raw backup and restore of ext4 partitions (not supported by cwm, I actually use it only for efs.img and restore of modem.bin files)
- New Nandroid Settings Menu: improved UI with settings immediately reflecting on menus
- New TimeZone menu: friendly UI (idea from TWRP) and simpler code to fix issue where it could sometimes fail to write config file
- pigz library: big credits to TWRP team (will be used for new lightning fast compressed backups)
- fix ors mount script for phones without external sd
- remove useless run of ors mount when not started from boot
- fix some partitions could be formatted despite no backup file to restore when md5 check was disabled
- small bug fixes and code cleaning
3.99 Recovery (CWM 6.0.2.7 based)
- Fix flash modem function failing when searching *.img files instead of *.bin files
- Merge sk8erwitskil changes: fix special backup and restore functions for devices without external sd
- Second pass at fixing write error of toggle time zone appearing on some conditions
- Make custom_rom.zip from current ROM or from pre-existing nandroid backup
- Ensure tar format during create custom_rom.zip operations
- Add sync() at end of special backup and restore functions (in case of... + fix lag on exit menu)
- Merge cwm 6.0.2.7 changes
- nandroid: Fix nonexistent backup format type bug.
- do not attempt to back up .android_secure if it is on /data/media
- Add Home button to select for i9300/n7100
- Edit i9300/n7100 ums lun file path
- Add rom name to nandroid backup path: fetched from
- ro.modversion=
- ro.romversion=
- ro.build.display.id=
- noname if above are empty
- Fix the getprop issue in i9100/n7000 JB leak, aka error 7 (early mount /system in recovery.rc)
- Code cleanup
3.81 Recovery (CWM 6.0.2.3 based)
- merge last cwm 6.0.2.3 updates from jellybean cm10 branch
- remove wipe battery stats
- better implementation for setting default backup format
- fix crash in recovery that occurs during backup (popen.c)
- dedupe: fix buffer overflow
- i9300: fix vibrator not working
- n7100: fix exfat support
- n7100: fix aroma file manager failure
- n7100/i9300: fix ramdisk/kernel used: now based on stock kernel/recovery: fixes potential exfat and aroma issues
- enable mount external sd over usb in recovery for /data/media devices
- complete re-write of Special Backup and Restore menu and functions: more efficient code to easily add new backup/restore jobs
- complete rewrite of toggle gui menu code: 4Kb size gain on recovery binary + more efficient code performance wise
- new Misc Nandroid Settings: toggle md5 checksum, toggle /preload processing, set time zone
- no fail of nandroid job on /preload error (auto skip on error)
- set time zone for nandroid backup path moved to new Nandroid Misc Menu
- add credits to special backup and restore sh scripts
- fix mount /system error log on recovery start
- key repeat toggle now applied live, no more need to restart recovery to take effect
3.75 : PhilZ Touch 3.63 Recovery (CWM 6.0.1.9 based)
- Complete rewrite of toggle gui menu code: 4Kb size gain on recovery binary + more efficient code performance wise
- New toggle to set time zone: correct time can now be set for nandroid backup path and recovery log
- Merge cm10 jb changes: set default backup format to tar
- Fix mount /system error log on recovery start
- Key repeat toggle now applied live, no more need to restart recovery to take effect
3.72 / 3.73 : PhilZ Touch 3.40 Recovery (CWM 6.0.1.9 based)
- 3.72 ---- > 3.73: code cleaning for universal exFat compatibility
- Support exFAT for external sdcards in recovery: no +4Gb size file limit like fat32, better optimized for 64Gb cards
3.70 / 3.71 : PhilZ Touch 3.39 Recovery (CWM 6.0.1.9 based)
- 3.70 --> 3.71: added format /preload on special wipe before install new rom
- Merge Koush last changes: (+ add credit inside code source)
- dedupe: fix buffer overflow, the length of key was incorrect, 4.2's libc detects the overflow and crashes
- fix bug where you cannot partition internal sd
- add wipe all before install ROM: wipe all user data + wipe system
- second pass at fixing partition sdcards menu by PhilZ, now it should work as supposed
3.65 : PhilZ Touch 3.35 Recovery (CWM 6.0.1.9 based)
- Completed ors implementation: added script started on boot, with same function as custom ors (simpler code than previous versions)
- fixed ors-mount.sh support for phones without /emmc
- goomanager support fixed for phones without /emmc
- misc permissions fixes for recovery scripts
3.62
- permissions fixed: now special backup and restore functions work again
3.61 / 3.62 - 22 nov 2012
- Update to cwm 6.0.1.9 + PhilZ Touch 3.34
- Add nandroid /preload backup & restore support
- Add option to flash modem image from recovery
- Fix Aroma File Manager path for devices without /emmc mount point
- Fix: mount sdcards before launch aroma as some times we did not have access to other sdcard under aroma
- Fix kerne/efs backup & restore for phones without /emmc
- Optimized backup/restore status log for kernel/efs/modem: now showing true success/failure based on exit code/stderr from CAT
- One ORS code is enough for custom and at boot scripts
- Fixed ORS backup job log
- Merge cm10 branch updates:
- Add support for doing a true ext4 format of /data on /data/media devices.
- Shorter confirmation menu if compiled as Philz Touch
3.5 - 18 nov 2012
- Update to new Touch PhilZ 3.25 cwm 6.0.1.8 based recovery
- Option to flash kernels (zImage you rename to *.img file) directly from recovery
- Backup kernels now supports multiple time stamped backups
- ORS/EFS/Kernel backup/restore scripts support universal mount points/path through recovery.fstab: multi-device compatibility
- Major update to code for multi-device support (compile from source code for any phone)
- Now, philz-cwm6 recovery is open source (see post 1)
3.43
- Support exFAT for external sdcards in recovery: no +4Gb size file limit like fat32, better optimized for 64Gb cards
- ADB now starts with root access
3.39
- added format /preload on special wipe before install new rom
3.38
- second pass at fixing partition sdcards menu
3.37
- add wipe all before install ROM: wipe all user data + wipe system
3.36
- Merge Koush last changes: (+ add credit inside code source)
- Dedupe: fix buffer overflow, the length of key was incorrect, 4.2's libc detects the overflow and crashes
- Fix bug where you cannot partition internal sd
3.35
- completed ors implementation: now script started on boot, with same function as custom ors (simpler code than previous versions)
- fixed ors-mount.sh support for phones without /emmc
- misc *.sh permission fixes on compilation
3.34
Merge cm10 branch updates:
- Add support for doing a true ext4 format of /data on /data/media devices.
- Shorter confirmation menu if compiled as Philz Touch
3.33
- Add nandroid /preload backup & restore support
3.32
- Fix: mount sdcards before launch aroma as some times we did not have access to other sdcard under aroma
3.31
- edited recovery.fstab for some devices (i9100 / n7000) to include /modem
- Clean ORS code + Add modem flash menu
- for i9100 / n7000, edit recovery.fstab and add this line
- /modem emmc /dev/block/mmcblk0p8
- Updated Readme.md file with Special backup and restore menu instructions
- Rename EFS/Kernel backup menu to Special Backup Menu
3.30
- One ORS code is enough for custom and at boot scripts
- Fixed ORS backup job log
3.29
- Fix kerne/efs backup & restore for phones without /emmc
- optimized backup/restore status log for kernel/efs: now showing true success/failure based on exit code/stderr from CAT
3.28
- First alpha / private release for i9300
- Fix Aroma File Manager path for devices without /emmc mount point
3.1 - 09 nov 2012
- Update to new Touch PhilZ 3.0 cwm 6.0.1.5 based recovery
- Completely revised new touch code: fixed old skips and jumps while scrolling
- Much more smooth behaviour after scrolling
- Even less risks of wrong validation of menus on touch while scrolling (can we say 0 risks?)
- GUI settings are now saved to /system/philz-cwm6 folder instead of /data/philz-cwm6: this is to fix some mount issues on early start and to maintain settings after a factory reset
- Added toggle key repeat for vol up/down keys (only feature needing recovery restart to take effect)
- Huge code cleaning and misc bug fixes
- Added install from sideload code based on last cwm6 update
- Moved sideload menu to install zip menu
- Added confirmation before "Fix Permissions" and "Install from sideload"
3.0 - 02 nov 2012 (i9100 only)
- Introducing PhilZ Touch 2.0 recovery (clockworkmod v6.0.1.5 based)
- touch interface: toggle 3 touch modes: FULL TOUCH, DOUBLE TAP to validate and SEMI TOUCH (scroll but no touch validation)
- very stable and safe scrolling in full touch mode: makes it hard to wrongly validate a menu while scrolling
- when you set full touch mode, it defaults to optimized settings for menu height and touch sensitivity (you still can alter them manually later)
- adjust scrolling touch sensitivity in 6 settings
- adjust menu height in 6 settings
- toggle vibrator on/off when using bottom virtual buttons
- toggle aggressive mode to try stealing bottom space for logs (may or may not work as expected depending on screen resolution and menu height)
- backup/restore EFS and Kernel
- browse phone with root access using full GUI in Aroma File Manager: checks first in default locations to give you direct access to your scripts, else you are prompted to browse for scripts in sdcards
- support openrecovery script in 3 modes using a smart one touch menu: looks first at goomanager scripts, then in default custom scripts location and finally prompts you to browse for scripts in sdcards
- show log menu modified to have its own screen: useful for the S2 because of its low resolution. Now, you can read teh screen logs even when having big menus
- reorganized menus layout
- miscellaneous fixes in initramfs for the kernel
2.7 - 07 oct 2012
- now using CWM6 based custom touch recovery 6.0.1.4 (internal build 1.15) * Siyah source code *
- DUAL USB MOUNT in recovery is now supported * Special thanks to [email protected] *
- semi-touch interface with right slide to select disabled for safety: use slide up/down and left for back
- include bottom virtual buttons for easier navigation
- revised GUI with bigger fonts and larger menus for better readability
- transparency effects in recovery menus
- fixed backup format selection menu in original Koush cwm6 (was echoing previous menu)
- added power off and reboot to download mode options in recovery menus
- battery % level displayed in recovery
- fixed some menus spelling and aspect in original recovery
2.5 - 22 sept 2012
- Introduced brand new original feature: MULTI-bootanimation scrolling on each boot. See post 2 for details on how to use this new feature
- No more true insecure kernel (ro.secure back to 1), ADB root in recovery is through cwm adbd like other custom kernels
- CWM updated to last 6.0.1.4 non touch: touch vcoming later
- CWM6 is now built from source, to avoid issues with dynamically linked binaries ** Big thanks to - Tallustus from Team Skyfire
2.0 - 14 sept 2012 (i9100 only)
- Now built automatically through scripting, no manual editing
- Added fake getprop to show custom kernel prop *credits to Siyah*
- Fixed missing /res/images fota png in ICS 4.0.4 (no bad consequence in any case)
- Minor cosmetic changes in scripts, mainly properties
- Added custom boot animation support:
- /data/local/bootanimation.zip
- /system/media/bootanimation.zip
- /data/local/bootanimation.bin
1.0 - 09 Sept 2012 : Initial release (i9100)
- Clockworkmod v6.0.1.2 recovery - Permanent
- Pure stock based kernel: only initramfs changes
- Flash through Odin or in Stock Recovery (no yellow triangle)
- Ready for root
- ADB root in recovery: just wait about a minute to activate
- Init.d and customboot.sh support
FAQ
1- what happens if I wipe/format/factory reset my data/media device?
format /data: only data is wiped, exclude /data/media:
Code:
cd /data ; for f in $(ls -a | grep -v ^media$); do rm -rf $f; done
format /sdcard : only /data/media or /data/media/0 (depending on setting you choose in Advanced menu) is wiped
Code:
rm -rf /sdcard/*
rm -rf /sdcard/.*
format /data and /data/media: will issue a true format on /data volume, obviously killing /data/media
Factory reset: will also preserve /data/media (rm -rf)
Clean to Install a New ROM: will do a factory reset (format /data, /cache, /datadata and sd-ext) + format /system +/- /preload. Your system will not boot until you install a new ROM
2- I backed up my data and I cannot find it when I boot into phone
Stock CWM and CM Updater app are using a non conventional linking for internal storage: internal storage is linked as /sdcard/0
PhilZ touch supports true /sdcard paths by linking it to either /data/media or /data/media/0
/sdcard/0 has no meaning in PhilZ Touch unless you set it to /data/media
By default, if a folder /data/media/0 exists, PhilZ Touch will default /sdcard to it, else it will use /data/media.
The advantage is for all stock +4.2 users: they can directly access their backups from /sdcard, while in main system and see them on PC in MTP mode.
You can override that setting in Advanced Menu and force it to /data/media or revert to /data/media/0
I recommend moving all your old cwm path to /data/media/0/clockworkmod and set sdcard to /data/media/0 unless you are switching between stock CWM and this mod or you need CM Updater app
To sum it up: for stock +4.2 rom users, keep default (/data/media/0). For CM users, if you frequently use CM Updater to flash in recovery, force /data/media
3- I come from stock CWM/TWRP and PhilZ Touch cannot see my backups
Read Answer 2
4- Aroma file manager doesn't start when I double tap screen
Read the guide to install aroma file manager.
Path changed in v5!
Read the /data/media/0 faq 2
5- CMUpdater cannot flash downlaoded files
If you get a /sdcard/0 error, it means you have /sdcard set as /data/media/0 in recovery
The reason is that CM app doesn't support /data/media/0 and is faking recovery with a /sdcard/0 implementation
You still can alter the setting and force it to /data/media in Advanced menu. This will give full compatibility with cwm, CM roms and CM Updater
6- How to flash a boot.img or recovery.img file?
- Put your boot.img or/and recovery.img files under a subfolder in clockworkmod/backup on sdcards
exp: /sdcard/clockworkmod/backup/cm-10.1-nightly_20130713/boot.img
- Navigate to Backup and Restore / Custom Backup and Restore / Custom Restore Job
- Unselect all partitions except boot and/or recovery
- Select >> Start Custom Backup Job <<
- Browse to your backup location until your cm-10.1-nightly_20130713, and select any file inside it
- You are done
7- My backups take a long time to complete
First, make sure you set compression to fast or low. Low compression setting gives around 30% compression with quiet no impact on speed. Rising compression value makes backups extremely slow with very little gain on space.
Stock CWM uses exfat fuse but without any buffering of writes. The end of it is a non usable thing for any backup because of an incredibly slow write speed.
TWRP uses exfat fuse binary to do the backups + caches tar writes to improve speed. This could cause data corruption on some devices.
PhilZ Touch uses patched kernel with native exfat support (static mode) for Samsung devices and soon other brands. This is supposed to be the faster and safest way.
However, it seems to struggle on some devices because of the logging mode used by CWM
Solutions:
- hide progress bar in Nandroid Settings menu: this will dramatically improve speed for many devices
- do not use exfat
- change exfat card to another brand. Ask in forum what people are using with good speed
- some users reported a real slow down when card/device is hot. Let your phone rest from intensive read/writes before starting a backup
- switch to another recovery like twrp if you cannot live with it. PhilZ Touch is compatible with TWRP and can backup/restore twrp format
8- You think you found a bug?
- Make sure your issue is recovery related
- All external sdcard issues: first format in PC with primary partition, tons of people are formatting as logical and come cry
- Reproduce your issue and while in recovery:
- Go to Advanced / Report Error
- Copy the /sdcard/clockworkmod/philz_recovery.log file and attach it here
- Give detailed info about your issues
- Without these, there is little chance I can help you, so, do not get mad if I do not answer
9- Loki things
Locked bootloader? How to lokify before flashing:
In Advanced Menu / Toggle Loki Support : enable auto loki
Flash the zip file and you are done
PhilZ Touch recoveries that come in a zip file format AND released after v6.01.2 have a script in the zip to lokify the recovery image during flash even if you are coming from older recoveries or TWRP (thanks @Wootever)
The included recovery.img in the zip is not lokified, it will be lokified during flash
If you are using a new CWM or PhilZ Touch with auto-loki enabled, please disable it before flashing my zip files to avoid any issue with double lokifying, if ever possible!
Unlocked bootloader users can still extract the recovery.img file and restore it from inside recovery:
put recovery.img in /sdcard/clockworkmod/backup/philz_update/recovery.img
In Custom Backup and Restore menu, unselect all except recovery
validate to browse to the update recovery.img
done
10- Assert error 7 on device name when installing roms and updates
Start of v6.02.2, recoveries are based on cm-11.0 (KitKat) device tree.
In all zip installers, you have a file called update-binary. It is the executable that will process and interpret all commands in updater-script, which will do all actions.
Older update-binary files cannot access system assert props on kitkat based kernels.
Fixes:
- edit your updater-script in zip file and remove all assert lines checking for device name. Use notepad++ or a linux editor
- manually change your update-binary in the zip with a new one you take from a cm-11.0 release
- revert to an older recovery before 6.02.2
- ask your rom releaser to update his update-binary
Note: start of 6.09.6, this error is fixed. However, you can end up with error in FAQ 11
11- various status 7 errors: format() expects 5 args, got 4 - set_permissions errors...
First read FAQ 10
Start of 6.09.6, recovery will analyze the update-binary that comes with your zip package. If it detects an outdated version, it will be automatically replaced during flash.
This will fix all assert getprop errors discussed in FAQ 10 (often used to check if the zip is meant to be flashed on your device)
However, doing so, can expose you to a bunch of new errors if the update-binary is +2 years old. In that case, the updater-script code used could not match the new update-binary:
The error "format() expects 5 args, got 4" is caused by not using the below new format command in updater-script:
format(fs_type, partition_type, location, fs_size, mount_point)
Click to expand...
Click to collapse
exp:
Code:
format("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "0", "/system");
The error due to failure on set_perm is caused by using 2 years old update-binary
New ones will abort installation when setting permission fails on any file, while it was previously allowed to continue
Fixes:
- start of 6.15.4, PhilZ Touch added an option to force using the update-binary that comes in your zip. It will make it work except for the assert for device name error. However, that error is very easy to fix by any one (see FAQ 10). The option doesn't stick on reboot, you have to manually set it when you flash such files. It is done on purpose to keep you warned about potential risks using such bad scripts often coming from a copy paste procedure
- hammer your ROM maker to keep up to his time, and look closer at his scripting and update-binary engine used
12- Time fix for Qualcom Chips and other devices
On many Qualcom devices, setting the time is disabled on different levels, depending on the device
New PhilZ Touch versions added a workaround to this limitation. The fixes do not modify in anyway the RTC flags in kernel, as it is not recommended by Qualcom
- Qualcom Time Daemon:
This is the recommended option. It will load the time daemon from /system and will keep your recovery time in sync with ROM.
However, many CM/AOKP/Custom Roms do not have a proper implementation of the daemon. Ask your ROM dev to properly implement Qualcom proprietary binaries and RTC permissions.
- Use RTC Time Offset:
This is the second workaround, recommended for ROMs without proper time daemon. You have to enable the option. After that, it will ask you to setup the actual time/date manually. Do it AND Validate your choice to apply the actual time. Enabling the offset mode without manually setting correct time AND validating your option has no effect!
- Try Force Persist on Reboot:
This is your last choice, if all other options failed. Disable previous 2 options and enable this one. You will need to setup time/date manually AND validate your choice. Else, it won't have any effect.
- Normal/manual mode: Non Qualcom based devices, can just use the default mode to set time/date manually
13- My ROM maker advises another recovery
If an installer script cannot run on PhilZ Touch, it won't run on CWM. PhilZ Touch is just a CWM mod in that regard. Installer is not modified
Rule of thumb: If a ROM cooker says "YOU MUST USE A GIVEN RECOVERY", be sure there are bugs in his work
A properly formatted updater-script, shell child scripts or aroma scripts should be able to run on any recovery as it should call real blk device paths and not "pre-defined" mount points
Mount points WILL vary from recovery to another and maybe from a version to another. Relying on them is a bad idea
Also, many do miss proper edify scripting rules:
- /sdcard is a symlink, not a folder since years now (/data/media)
- you cannot extract without mounting first
- you must create your paths. Installer won't be verifying you did so
- you cannot mount vold paths (sdcard, usb storage...) by calling the mount point in a shell script. Look at your fstab under recovery to understand why
If a rom maker has issues to understand this, he can ask for help here or in an edify scripting thread
14- F2FS <-> EXT4 format migration
Under "mounts and storage" menu, if "toggle f2fs <-> ext4 migration" is enabled, whenever we try to format an ext4 or f2fs partition, we get a prompt to convert between f2fs/ext4
To convert /data on /data/media devices, we must as always select the "/data and /data/media" menu
Nandroid implementation to migrate your data/ROM from ext4 to f2fs:
- backup your existing data
- in "mounts and storage", format the partitions you want to convert to f2fs
- restore your data
- on restore, if both backup image and target partition has different fstype and fstype is either ext4 or f2fs, we favour target devise fsytpe (data migration)
This is awesome work buddy. Never seen this before..Great work my friend. You need clapping.
BTW, can I load it in MY galaxy R..?? Using CWM V 6.0.0.1.??
Re: [22.03.2013]Clockworkmod Advanced Edition / PhilZ Touch 4.90.8
Look at the dev info thread to port/compile it for any device supported by cyanogenmod
Sent from my GT-I9100 using Tapatalk 2
Updated post 1 with currently supported devices by me
This list can grow up as people would like to
Is it possible to add support other devices?
Congrats on the official thread Phill ! Your place belongs here. :angel:
Phill has been supporting the G Note community for almost a year now and he has special expertise with Samsung devices, more so with issues like brick bug, root, stability, battery, ever - growing features in the recovery menus, dealing with bootloops, even kernel issues etc.
Im sure his work will be well appreciated over a wider area on xda soon.
Of course he will support more devices as he gets more time and requests.
Keep it up Phil, you have been the best developer for Samsung community.
Phil love your work and your support man..
Lastest build great on LSD firmware on SGS2..PS Using the original build with SuperSU
You're the best Phil keep it up:good:
One question though why the new version included only two bases?
galaxynotes said:
You're the best Phil keep it up:good:
One question though why the new version included only two bases?
Click to expand...
Click to collapse
what is 2 bases?
Phil3759 said:
what is 2 bases?
Click to expand...
Click to collapse
Your latest version were for these two only :
DDLSC-ODD
XXLSZ-OXA
I'm not requesting anything just wondering why
Sorry, this the dev thread
As noted in post 1, support for specific devices goes into their respective thread
This is a port of Lanchon REPIT.
- Nexus 7 (2013) Deb (LTE) and Flo (WiFi) -
Disclaimer:
I am not responsible for your actions or consequences, directly or indirectly, related to the files and/or advice offered.
It is your choice to proceed.
What is REPIT?
REPIT is a simple, safe, device-only, data-sparing, and easily portable repartitioning tool for Android devices.
See the GitHub README for more on What REPIT is. GitHub - Link
Limitations:
Requires TWRP (or TWRP based) recovery.
Does not support encrypted devices.
Will cause data loss if the repartitioning process is externally interrupted.
See the GitHub README for more on Limitations. GitHub - Link
---
Notes:
A few years ago (September 2018), I made a port of REPIT for deb,flo and manta that was spread out between multiple threads.
Some comments and instructions were lost in thread chatter or just in a different thread altogether.
The file name actually configures the repit script.
Noted that you may have to toggle MTP Disable, Enable, Disable.
Noted that you may have to reboot into TWRP after disabling MTP.
Remember /tmp is wiped after a reboot. Copy repit to /sdcard and after rebooting back into TWRP, copy it from /sdcard to /tmp using TWRP File manager.
Noted that you may have to unmount cache and data.
Do NOT flash repit from USB/OTG.
This is designed for a stock partition layout. If your device has been modified and a vendor partition was created, REPIT will not work.
Side note:
Lanchon added Nexus 7 (2013) to the official list. (November 2019)
Lanchon REPIT GitHub - Port Request - Commit
---
Be Careful.
There are always risks involved when you start messing around with a device.
If something goes wrong, you may end up with a non-working "bricked" device.
This is especially true when you start modifying partitions.
Backup what you want to save and store it off device.
Copy it to your computer, cloud storage, USB, ...
Instructions:
This operation might take a long time and must not be interrupted.
- Depending on the device and REPIT configuration, this might take a few hours.
Make sure your battery is fully charged or mostly charged.
- You can connect to a charger while the REPIT script is running. May or may not charge depending on the recovery.
How To:
If you already have a ROM installed, repit will backup, change the partition, restore and resize.
- You can just reboot once the script finishes.
Boot into TWRP
Swipe to Allow Modifications
Copy the repit zip to /tmp
Disconnect from computer
Disable MTP
Disable MTP TWRP -> Mount
Install repit
TWRP -> Install -> navigate to /tmp and flash the repit zip
Reboot to system
If you are doing a clean install, add the +wipe option to system in the zip file name. This will speed up the partitioning since system will not be backed up and restored.
lanchon-repit-20210220-system=max+wipe-cache=16M+wipe-flo.zip
- Reboot back into TWRP after the script finishes.
- Then follow the instructions from the rom thread to install the rom you are going to use.
Boot into TWRP
Swipe to Allow Modifications
Copy the repit zip to /tmp
Disconnect from computer
Disable MTP
Disable MTP TWRP -> Mount
Install repit
TWRP -> Install -> navigate to /tmp and flash the repit zip
Reboot to recovery
Follow the instructions from the rom thread to install the rom you are going to use.
---
Changes:
Nexus 7 (2013) [Deb][Flo]
Pushed a bit pass the safe zone and claimed a bit more unallocated space.
Updated to the current REPIT scripts.
Separate zip files for deb and flo.
Nexus 7 (2013) GitHub - Commit
Download Links:
MediaFire - Link
SourceForge - Link
GoogleDrive - Link
Direct Download from MediaFire:
lanchon-repit-20210221-system=max-cache=16M+wipe-deb.zip MediaFire - Download
lanchon-repit-20210221-system=max-cache=16M+wipe-flo.zip MediaFire - Download
REPIT Links:
Lanchon REPIT GitHub - Link
- My fork GitHub - Link
Credits:
Lanchon for his excellent REPIT project.
The Android Community and everyone who has helped me learn through the years.
Cheers all.
Note about configuration.
The user configuration is done by renaming the zip file before flashing it.
Not much room to change on deb/flo.
The modifiable partitions are only system and cache (22 and 23).
The actual partitioning is done by a sector range. This is declared inside the script along with a default configuration.
Code:
# the set of partitions that can be modified by REPIT:
# <gpt-number> <gpt-name> <friendly-name> <conf-defaults> <crypto-footer>
initPartition 22 system system "same keep ext4" 0
initPartition 23 cache cache "same keep ext4" 0
initPartition 24 misc misc "same keep raw" 0
# the set of modifiable partitions that can be configured by the user (overriding <conf-defaults>):
configurablePartitions="$(seq 22 23)"
...
# the set of contiguous partitions that form this heap, in order of ascending partition start address:
heapPartitions="$(seq 22 24)"
# the disk area (as a sector range) to use for the heap partitions:
heapStart=$(parOldEnd 21) # one sector past the end of tzb.
heapEnd=$(parOldStart 25) # the start of recovery.
By default, REPIT will back up, restore, compress and/or expand a partition.
The +wipe option will wipe the partition.
The max option is an easy way to allocate the remaining space for a partition.
The misc partition is not part of the user-config but, it is in the sector range.
It will be moved to the the end of the sector range without alteration.
The default zip name lanchon-repit-20210221-system=max-cache=16M+wipe-flo.zip
Creates a 16M clean cache partition. (Wiped)
Uses the rest of the unallocated space in the range for system.
System is backed up and restored since the +wipe option was NOT added to system.
Since only system and cache can be configured, this only allows a few options for deb and flo.
Default zip name. -system=max-cache=16M+wipe-
Include wipe system. -system=max+wipe-cache=16M+wipe-
See the GitHub README for more on how to configure. GitHub - Link
Cheers all.
<RESERVE>
<RESERVE>
I think this deserves a bump, because, this is some great work right here for those wanting to stick with a stock-like partition layout!
Hi, I want to go back stock partition size. So i have to rename the zip.
What zip name?
ipdev said:
This is a port of Lanchon REPIT.
- Nexus 7 (2013) Deb (LTE) and Flo (WiFi) -
Disclaimer:
I am not responsible for your actions or consequences, directly or indirectly, related to the files and/or advice offered.
It is your choice to proceed.
What is REPIT?
REPIT is a simple, safe, device-only, data-sparing, and easily portable repartitioning tool for Android devices.
See the GitHub README for more on What REPIT is. GitHub - Link
Limitations:
Requires TWRP (or TWRP based) recovery.
Does not support encrypted devices.
Will cause data loss if the repartitioning process is externally interrupted.
See the GitHub README for more on Limitations. GitHub - Link
---
Notes:
A few years ago (September 2018), I made a port of REPIT for deb,flo and manta that was spread out between multiple threads.
Some comments and instructions were lost in thread chatter or just in a different thread altogether.
The file name actually configures the repit script.
Noted that you may have to toggle MTP Disable, Enable, Disable.
Noted that you may have to reboot into TWRP after disabling MTP.
Remember /tmp is wiped after a reboot. Copy repit to /sdcard and after rebooting back into TWRP, copy it from /sdcard to /tmp using TWRP File manager.
Noted that you may have to unmount cache and data.
Do NOT flash repit from USB/OTG.
This is designed for a stock partition layout. If your device has been modified and a vendor partition was created, REPIT will not work.
Side note:
Lanchon added Nexus 7 (2013) to the official list. (November 2019)
Lanchon REPIT GitHub - Port Request - Commit
---
Be Careful.
There are always risks involved when you start messing around with a device.
If something goes wrong, you may end up with a non-working "bricked" device.
This is especially true when you start modifying partitions.
Backup what you want to save and store it off device.
Copy it to your computer, cloud storage, USB, ...
Instructions:
This operation might take a long time and must not be interrupted.
- Depending on the device and REPIT configuration, this might take a few hours.
Make sure your battery is fully charged or mostly charged.
- You can connect to a charger while the REPIT script is running. May or may not charge depending on the recovery.
How To:
If you already have a ROM installed, repit will backup, change the partition, restore and resize.
- You can just reboot once the script finishes.
Boot into TWRP
Swipe to Allow Modifications
Copy the repit zip to /tmp
Disconnect from computer
Disable MTP
Disable MTP TWRP -> Mount
Install repit
TWRP -> Install -> navigate to /tmp and flash the repit zip
Reboot to system
If you are doing a clean install, add the +wipe option to system in the zip file name. This will speed up the partitioning since system will not be backed up and restored.
lanchon-repit-20210220-system=max+wipe-cache=16M+wipe-flo.zip
- Reboot back into TWRP after the script finishes.
- Then follow the instructions from the rom thread to install the rom you are going to use.
Boot into TWRP
Swipe to Allow Modifications
Copy the repit zip to /tmp
Disconnect from computer
Disable MTP
Disable MTP TWRP -> Mount
Install repit
TWRP -> Install -> navigate to /tmp and flash the repit zip
Reboot to recovery
Follow the instructions from the rom thread to install the rom you are going to use.
---
Changes:
Nexus 7 (2013) [Deb][Flo]
Pushed a bit pass the safe zone and claimed a bit more unallocated space.
Updated to the current REPIT scripts.
Separate zip files for deb and flo.
Nexus 7 (2013) GitHub - Commit
Download Links:
MediaFire - Link
SourceForge - Link
GoogleDrive - Link
Direct Download from MediaFire:
lanchon-repit-20210221-system=max-cache=16M+wipe-deb.zip MediaFire - Download
lanchon-repit-20210221-system=max-cache=16M+wipe-flo.zip MediaFire - Download
REPIT Links:
Lanchon REPIT GitHub - Link
- My fork GitHub - Link
Credits:
Lanchon for his excellent REPIT project.
The Android Community and everyone who has helped me learn through the years.
Cheers all.
Click to expand...
Click to collapse
I have been trying to repartition Nexus flo 2013 following the steps outlined above with lanchon-repit-20210221-system=max+wipe-cache=16M+wipe-deb.zip for 19.1 version but keep getting Error 1, see photo. Any help will be much appreciated. Thank you
greenleaves said:
I have been trying to repartition Nexus flo 2013 following the steps outlined above with lanchon-repit-20210221-system=max+wipe-cache=16M+wipe-deb.zip for 19.1 version but keep getting Error 1, see photo. Any help will be much appreciated. Thank you
Click to expand...
Click to collapse
Problem fixed. Now 19.1, pico gapps and Magisk 25.0 were flashed in success. The problem was that I didn't follow through the steps carefully described on the OP to increase the partition sizes as follows:
The file name actually configures the repit script.
Noted that you may have to toggle MTP Disable, Enable, Disable.
Noted that you may have to reboot into TWRP after disabling MTP.
Remember /tmp is wiped after a reboot. Copy repit to /sdcard and after rebooting back into TWRP, copy it from /sdcard to /tmp using TWRP File manager.
Noted that you may have to unmount cache and data.
Do NOT flash repit from USB/OTG.
This is designed for a stock partition layout. If your device has been modified and a vendor partition was created, REPIT will not work.
greenleaves said:
Problem fixed. Now 19.1, pico gapps and Magisk 25.0 were flashed in success. The problem was that I didn't follow through the steps carefully described on the OP to increase the partition sizes as follows:
The file name actually configures the repit script.
Noted that you may have to toggle MTP Disable, Enable, Disable.
Noted that you may have to reboot into TWRP after disabling MTP.
Remember /tmp is wiped after a reboot. Copy repit to /sdcard and after rebooting back into TWRP, copy it from /sdcard to /tmp using TWRP File manager.
Noted that you may have to unmount cache and data.
Do NOT flash repit from USB/OTG.
This is designed for a stock partition layout. If your device has been modified and a vendor partition was created, REPIT will not work.
Click to expand...
Click to collapse
Edit: NVM, i used restock to start fresh, and it all went fine. I've had this table kicking around long enough that I'm sure something was done that sysrepartundo couldn;'t undo.
How did you actually fix it? I ran sysrepartundo, am running it from the tmp folder with mtp disabled and nothing mounted, and still getting error 1. I've double check, all my partition sizes are stock.. I've been at this a few hours now and am getting frustrated.
theistus said:
I ran sysrepartundo, am running it from the tmp folder with mtp disabled and nothing mounted, and still getting error 1. I've double check, all my partition sizes are stock.. I've been at this a few hours now and am getting frustrated.
Click to expand...
Click to collapse
sysrepartundo is ancient and useless nowadays, try sysrepart-stock instead
Thank you for the script. I was able to repartion my flo and make it compatible with android 12L. Everything went smooth after realising (and correcting this mistake) that i"ve been putting the .zip inside /sdcard/tmp instead of /tmp (I was getting error 1 in TWRP).
During instalation process i"ve connected flo to charger and it indeed charged during repartition process
Things i"ve noticed
- TWRP appeared to be very laggy during repit process and took several seconds to reconginse the charger (to show to + sign next to the battery % to be precise)
- after device rebooted to stock 6.0.1, MTP didn"t work correctly. It appeared in my computer as "Nexus 7", but was completely empty. One more reboot (this time got short loading toast of "android is updating") and internal memory was visible from computer again
THANKS! It worked great for me also. I have mentioned it in the [GUIDE/TUTORIAL/HOWTO] Google Nexus 7 2013 Stock to Android 12 Tutorial.
Hi,
I had used @followmsi's sysrepart_1280_120.zip some time ago.
Now I'm interested in @followmsi's lineage 19.1 and want to use your lanchon-repit-20210221 script for increasing the system partition again.
Would you still consider the partition layout as stock, so I could use your script ? (See attachments)
And do I need a PC as the USB port is inoperative, so no way to connect to a PC?
Thank you very much in advance!
curiousde2002 said:
Hi,
I had used @followmsi's sysrepart_1280_120.zip some time ago.
Now I'm interested in @followmsi's lineage 19.1 and want to use your lanchon-repit-20210221 script for increasing the system partition again.
Would you still consider the partition layout as stock, so I could use your script ? (See attachments)
And do I need a PC as the USB port is inoperative, so no way to connect to a PC?
Thank you very much in advance!
Click to expand...
Click to collapse
You should be good to go.
Using one of the older (re)partitioning methods did not affect the partition table too much.
The note about a stock partition layout is mainly for users who used a (re)partition script that adds a separate vendor partition.
Cheers.
ipdev said:
You should be good to go.
Using one of the older (re)partitioning methods did not affect the partition table too much.
The note about a stock partition layout is mainly for users who used a (re)partition script that adds a separate vendor partition.
Cheers.
Click to expand...
Click to collapse
Would you recommend any precautions like putting files like restock on my device before running your script as I cannot connect to PC?
Thanks a lot for your help!
hi, i need some help, after using this script i can't seem to install any rom, i just can't format or mount any of my partitions, and sideload stops at some random %, anything i can do to restore? i backed up all files advised.
Hello, i'm having trouble installing Android 12L on my Nexus 7. I simply cannot get lanchon-repit to flash. It wont work, no matter how often I follow the steps and how thorougly I follow the guide. I tried everything. Already restored to "fabric-partitions" so on and so forth.
I'm constantly getting Error 1. I'm slowly losing my mind here.
Kind regards hoping for an answer
septchy
edit: also constantly says partition #30 not found.
I'm getting the following errors on flo:
Code:
FATAL: partition #31 unexpected
[ERROR 1]
Any ideas? Thanks