Commit Graph

200 Commits

Author SHA1 Message Date
that a3d31fbe38 fixPermissions: simplify code, fix bugs
- avoid parsing permission strings
- fix memory leaks, a fix new/free mismatch and a compiler warning
- fix that only first updated-package was processed
- fix a potential stack overflow if packages.xml is huge
- minor refactoring for reducing duplicated code
- don't process packages without codePath
- fix path for deleting app data (currently unused anyway)
- fix file ownership on libs
- try not to mess up Android 5.0 app permissions

Patch set 4

- make fixing SELinux contexts an option with a check box
- add some notes / text to the themes

Patch set 6

- decouple "fix permissions" from "fix contexts"

Change-Id: Icc77ecc581befc5ce6e419b1f3b8ca189208c234
2014-12-22 04:52:37 +01:00
Ethan Yonker d79d9bceb3 Allow non datamedia devices to wipe encryption
With 5.0 L, we decrypt automatically if the default_password is
used. Non datamedia devices do not get the format data button so
they cannot wipe encryption off the device. This patch add a wipe
encryption button where the format data button would normally be
located on the Wipe page.

This patch also attempts to remove / delete the dm-crypt block
device before formatting.

Change-Id: I100d5d154d6c49254fd48e23279df973db5f23ae
2014-12-21 23:30:17 +01:00
Ethan Yonker 726a020632 MTP add/remove storage instead of disabling MTP
Implement a pipe between TWRP and MTP to allow TWRP to tell MTP
to remove storage partitions as they become unavailable (e.g.
during a wipe, unmount, etc) instead of disabling MTP completely.
This includes some fixes and improvements in destructors to
properly remove / delete various items. This also means that we
will not be toggling adb off and on quite as often.

I do not like that we had to add another thread, but we were
unable to use select() on the mtp_usb character device because
this device does not support polling. Select always returned
indicating that the mtp file descriptor was ready to be read and
the resulting read would block. The read block prevented us from
being able to include reading of the pipe between TWRP and MTP in
the main MTP thread.

We might want to add a return pipe letting TWRP know if the
removal of the storage device was successful, but I am not sure
how we want to implement this. It would invovle timeouts in both
TWRP and MTP to ensure that we returned a failure indicator in a
timely manner to TWRP and prevent deleting the storage device in
the case of a failure. Right now we make no attempt to ensure that
an MTP operation is underway like a large file transfer, but we
were not doing anything like this in the past. In some respects we
have limited control over what happens. If the user installs a
zip that unmounts a storage partition, we will not know about the
change in storage status anyway. Regular Android does not have
these troubles because partitions rarely get unmounted like in
recovery. At some point, we have to hold the user accountable for
performing actions that may remove a storage partition while they
are using MTP anyway.

Ideally we do not want to toggle the USB IDs and thus toggle adb
off and on during early boot, but I am not sure what the best way
to handle that at this time.

Change-Id: I9343e5396bf6023d3b994de1bf01ed91d129bc14
2014-12-19 16:27:34 -06:00
Ethan Yonker 5216bef553 Toggle MTP during ADB sideload
Windows does not do very well if you try to sideload while MTP is
enabled due to drivers. This will toggle MTP off and back on if
MTP is currently enabled before and after a sideload operation.

Change-Id: I022dbedecc97565b50b6ae1fda8922b822f63440
2014-12-18 21:18:15 +01:00
Ethan Yonker fb7a2dad7d Fix adb sideload page on 1440x2560 layout
Change-Id: If79086b0128e57087fd87f07d56984eb2a15d8b2
2014-12-18 21:16:54 +01:00
Ethan Yonker 619a721a30 Improve resource error logging
Actually display the name of the item or the filename of the item
that we were unable to load in the log to make it easier to
determine what went wrong.

Change-Id: I027b35aab286e4d0f1957bcfb28ed40d81f9bbb2
2014-12-12 17:10:20 +01:00
Ethan Yonker 4b94cfd391 Attempt to set the proper uid/gid/contexts on new files and dirs
Files and folders that we create during backups, copy log, or MTP
operations often do not have the proper uid/gid/contexts assigned.
We will attempt to read the proper contexts from the settings
storage path and assign those same contexts to any files or dirs
that we create.

Change-Id: I769f9479854122b49b499de2175e6e2d026f8afd
2014-12-12 09:20:42 -06:00
bigbiff b38de7e2f4 make header layout more readable for 1440x2560
Change-Id: I109c7ae5963b5b4d9d1a8190e364a7685c41dbdd
2014-12-10 19:05:09 +01:00
Ethan Yonker 738be7a3ff Use one mizip for all
The new minzip did not compile in older trees due to needing
mmap64. For older trees we will just use mmap instead. Remove all
files and code pertaining to minzipold. Updater should now build
properly in older trees as well.

Eliminate use of PLATFORM_VERSION in favor of PLATFORM_SDK_VERSION
which should be more consistent and reliable.

Change-Id: I38d2b604a73d1b17a2072c7d60e990b81ece0c10
2014-12-10 11:54:02 -06:00
Ethan Yonker c56ab4c72d Fix slidervalue not showing up in some cases
The button vibration slider was not showing up on portrat layouts.
This commit fixes that issue and maybe some other issues.

Change-Id: Ia0c0ed319358db3b99887b3b37aa7737c7caf0cc
2014-12-08 22:16:57 -06:00
erikcas 1db013bf28 bootable recovery: we upgraded to 5.0.1
Change-Id: I9e2f359dd7274e1ae885f6a3b392d5ab5ca99ac9
2014-12-03 16:05:35 +01:00
Ethan Yonker 75bf041a8a Make the android-5.0 branch compile in 4.4 to 4.1
Migrate previous minzip to minzipold replacing the existing
minzipold. This will break compatibility with trees that do not
support selinux (ICS and older). Migrate former verifier files to
verifierold.

Add fuse.h to recovery source because older trees do not have it.

Add LOCAL_MODULE_TAGS where needed for 4.1 tree.

Change-Id: Iade57cb2b0115af7fce9f56aa98636b1744a1ef4
2014-12-02 10:34:15 -06:00
bigbiff 85939e5a1b Thanks to _that, return null if vector is empty
Change-Id: Idc44455dd0c971c876ae283528c4367a82e145bd
2014-11-15 21:07:22 -05:00
Ethan Yonker bcc502cff9 Make TWRP compile for arm64
-Remove dosfstools for arm64 until we can make it compile
-Fix TW_USE_TOOLBOX flag to work again
-Fix symlinking and handling of sh when using mksh
-Fix legacy properties to find futex_wake function
-Fix libcrecovery to not use bsd_signal anymore
-Fix rules for building with regards to libcrecovery
-Update toolbox_recovery rules to compile tools in lollipop
-Fix a few compile errors specific to arm64

Testers report that TWRP does not boot on Nexus 9 and we fail to
get a shell for adb shell. At least it compiles without errors.

Change-Id: I286be8628defb60cc527b8a548c0bdfcb0ebb574
2014-11-12 11:03:50 -06:00
bigbiff 4e36d50b06 update theme thanks to Alexey71 on xda.
Change-Id: Id5a0d40d05b0d7e56fb3e8f0578c201957508b70
2014-11-11 20:28:39 -05:00
Ethan Yonker a2dc2f22d0 Make custom themes work again
Change-Id: Ib9ad011428603979f7dd8a2708989feb9b13e075
2014-11-08 08:13:40 -06:00
Ethan Yonker 24813426b9 Update adb sideload feature
Change-Id: Ib503d0e87434e1a28430779302d6565211c26592
2014-11-07 17:25:46 -06:00
Ethan Yonker 57e3587b8e Fix zip install
We never used the feature for running a custom theme during zip
install. We can re-implement this later if we like. For now, we
will remove this feature until we are ready to make it work.

Change-Id: Ice71b0b863c7ef17376e3f973d48b810be567c33
2014-11-07 14:54:20 -06:00
Ethan Yonker 5a95c3ff41 Disable custom theme and fix png loading
We will have to update the zip handling later. Now at least TWRP
boots up to the GUI.

Change-Id: I4182896eb095cab52fb0f1c9c20b6605e35677b9
2014-11-07 13:33:07 -06:00
Ethan Yonker ffbd6ffc21 Fix crash when rapid firing command line commands
Change-Id: I0caaa51720fe3608b8c4cb02f046afb3cbaa54f9
2014-10-22 10:48:16 -05:00
HandyMenny 466dc9764b gui: Disable unnecessary checks if TW_CUSTOM_THEME is defined
if TW_CUSTOM_THEME is defined there's no need to check if
$(commands_recovery_local_path)/gui/devices/$(DEVICE_RESOLUTION) exist.

Change-Id: I234374eb1db187758102ca64884a94a81c938b54
2014-10-20 14:50:07 +02:00
Captain Throwback a7f5ce31da Fix placement of Android Secure and SD-EXT on wipe page
Change-Id: Iac1c13b38df2ac66106abcda7c9d171a1549b65f
2014-10-20 07:41:13 -05:00
Captain Throwback 5f4fd8c03e Update reference to 24-hour clock
Change-Id: Ic864fae4fda9707fc84d6d8b33587863b7664e1e
2014-10-14 08:17:04 -05:00
Jenkins 1710bf2547 display cpu temperature in twrp
use TW_NO_CPU_TEMP := true to disable display
use TW_CPU_CUSTOM_PATH := path to set custom path

Change-Id: Id260ecbb4ec36a78442387329944f67003d0f6a0
2014-10-14 15:08:11 +02:00
Vojtech Bocek 76ee903d84 Add support for TrueType fonts
* Keeps original font system in place
* Uses the same API as original font system:
   - You can render only one line at a time
   - You can only use one font and color for one gr_text* call
* Caches all rendered text, with a string cache limited to 400
  entries, then it trucates to 250, which results in memory
  usage hovering around 5-10MB

Change-Id: I36107b9dcd8d57bae4486fce8b8f64e49ef3d906
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2014-10-14 15:06:56 +02:00
Tom Hite 5a9267283c performance profile support
Many device trees support the recovery.perf.mode property to
set various core frequencies and online/offline mode. TWRP is
highly threaded, and support for multiple cores on many operations
dramatically recudes the time, e.g., backups, zip flashes, etc.

p2: removed user notifications

Change-Id: I957b8ca40b241c0af0471327eeb329cce1816017
2014-10-08 19:35:32 +02:00
Ethan Yonker 6277c79727 Attempt to automatically identify data/media devices
Change-Id: Ia3007fbced9ce3bc94efdb3dacc582a5e68a49a4
2014-09-19 22:34:09 -05:00
Matt Mower 55c75cad80 Build block TWRP with RECOVERY_VARIANT
Enable TWRP to reside alongside other recoveries with the naming
convention: bootable/recovery(-flag). If TWRP resides at
bootable/recovery and a device does not specify RECOVERY_VARIANT, then
it will build like normal. If TWRP resides at bootable/recovery-twrp,
then its makefiles will only be parsed if a device specifies
'RECOVERY_VARIANT := twrp'. This prevents TWRP specific makefile
warnings/errors (notably, missing DEVICE_RESOLUTION) when another
recovery is being built.

Change-Id: I8f02fffcd79c309c7123b9428eedc69af02e126e
2014-09-03 10:53:37 -05:00
Dees Troy 298c4387f7 Refresh partition details after changing file system
Change-Id: I24f3c8587f778c4f0ef43737243c8378a3fd0e00
2014-09-03 14:42:26 +00:00
bigbiff bigbiff c7eee6fef0 add mtp responder to TWRP.
Big thanks to Dees_Troy for helping with the implementation.

Change-Id: I6c9c522b9c9de5dc139e2ecb0141008182ba07f0
2014-09-02 21:44:49 -04:00
xNUTx e85f02dd91 Support reading since_epoch and secondary brightness files
TWFunc::Fixup_Time_On_Boot: Will now try to read
/sys/class/rtc/rtc0/since_epoch to correct time, if that fails
it will try to use the ats files to correct time.

TWFunc::Set_Brightness: One single function to set brightness
from both the automated functions and the gui actions. It is
able to set a second brightness path if present, it will set
them both the same value. Many Sony devices have 2 brightness
files in the sysfs that must be set to properly set the
brightness.

Change-Id: I7ca582109085dfbcb46b8de73ad031e4b7903fca
2014-08-10 08:57:14 -05:00
Ethan Yonker 03a42f6c6a Add command line capabilities
Allows sending openrecoveryscript commands to TWRP via shell.
This may be handy for visually impaired users, for various one
click utilities to drive TWRP commands from a computer, for using
TWRP when a catastrophic hardware failure like a shattered screen
prevents you from being able to use touch, or even on devices like
a TV stick where touch and USB mouse input is unavailable.

This patch also includes a few minor changes to openrecoveryscript
including proper support for rebooting via the script and for
decrypting the device via the command line.

Change-Id: I796ad168efdd2da9c25334ac93d1079daaa7b0bc
2014-08-09 07:49:35 -05:00
Vojtech Bocek 18d7c98688 Add possibility to use images as background or handle of slidevalue
* Add tag <resource background="x" handle="y" handlehover="z" />
  to the slidervalue object.
* All images are optional, e.g. you can use just handle or just
  background image or no images whatsoever

Change-Id: Ie0fee92965c6e883c4e532732756008dcc9e385e
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2014-08-07 15:37:43 +02:00
bigbiff bigbiff 13baad223d update 1440x2560 keyboard mapping
Change-Id: I9777e92ca26967d41625e726383ae6aa5406161d
2014-08-07 15:37:25 +02:00
Ethan Yonker 96acb3d14d Allow using variables and addition/subtraction in variables
Change-Id: I1acba95302e414e1a471d27474508a7c48df0328
2014-08-07 15:37:01 +02:00
Ethan Yonker 3d49ea7cca Add 280x280 theme
Change-Id: Iea2fac2f1b300c312819ea2d83e1762669d357b6
2014-08-04 09:14:59 -05:00
Ethan Yonker e2b2902cd7 Minor tweaks to watch ui.xml files
Change-Id: I9448eed41e43c4fce575b7ed12b5270a1d75f99b
2014-07-30 09:32:59 -05:00
Ethan Yonker d9b7200824 Add 320x320 theme and split out watch.xml for square watch layout
Change-Id: I7fe38b20913a981942105637a527a2d26ed035a5
2014-07-30 08:46:38 -05:00
Ethan Yonker c49a3669a1 Update 240x240 theme
Change-Id: I1a50fa0bb750b229220c217d24253b65f24d2920
2014-07-29 11:40:07 -05:00
big biff ba535e3b6c add 1440x2560 theme to TWRP
Based on work by Chris Phelps <cphelps76@droidconcepts.com>
https://github.com/TEAM-Gummy/android_bootable_recovery_TWRP/commit/58963336b81ea8bcc03b8d7e4dfe4598f5afc972
https://github.com/TEAM-Gummy/android_bootable_recovery_TWRP/commit/4ec10303cb76592044c3aa449dc68a33356a6e09
https://github.com/TEAM-Gummy/android_bootable_recovery_TWRP/commit/c48bd2412332916eafd0db727d923c8c16cd35ed
https://github.com/TEAM-Gummy/android_bootable_recovery_TWRP/commit/f0944ded30e98917ca85db0185add1207ea5f4b6
But with other original changes too.

Change-Id: I809a37a3983187e62568a1e2403b6637a692220d
2014-07-29 00:44:51 +00:00
Dees Troy 7d4cedc1d8 Revert "add 1440x2560 theme to TWRP"
This reverts commit c45181db09.

Change-Id: I9dfb2733d9eb30c32bc1e307e382ee8e4e47a0b6
2014-07-29 02:27:14 +02:00
bigbiff bigbiff c45181db09 add 1440x2560 theme to TWRP
Change-Id: I9e54d2bcfe89e1e0e3205ce2f4156cfd22dca5b5
2014-07-28 09:00:36 -05:00
Ethan Yonker 780cd39e42 Allow ui.xml to include additional xml files to read
Use common portrait and landscape xml files based on resolution
defined by the device.

Change-Id: Iec528f9d846d49857ff98de1ac201e25dbb60339
2014-07-28 08:50:59 -05:00
Vojtech Bocek 03fd6c56fe Implement "take a screenshot" feature
* Like in android - press power+volume down, screenshots are saved
  in /sdcard/Pictures/Screenshots (if /sdcard is mounted) or /tmp

Change-Id: Iaefa15b11a1d5fdfac57d77388db1621f378a8d4
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2014-07-09 17:35:36 +02:00
Ethan Yonker 1b7a31bd65 Track backup and restore progress
Track backup and restore progress based on the sizes of the files
as they are being added to the tar backup file. Update the
progress bar based on the sizes of the files.

Change-Id: Idf649efa1db3e91830b4b2add86203a3f30042ff
2014-07-09 08:52:18 -05:00
Ethan Yonker bf2cb1c4d8 Color in the console
Allow each gui_print command to specify a color
Change LOGERR to use the error color
Theme should specify colors for error, warning, and highlight

Change-Id: Ie8ece34111f604e25fcb79e5b731cd4e61038ff9
2014-07-09 15:46:35 +02:00
jrior001 aad03116ed Refresh after partition changes
Change-Id: Id16c84f815b1c4b8e95da142648a5a759116ee6e
2014-07-07 20:59:07 +02:00
Motorhead1991 c7f2e1243b GUI: Add -fno-strict-aliasing to GUI for Vanir
Change-Id: Id772737d2856698861686671152f14bad800cd5c
2014-06-30 18:32:20 +02:00
Matt Mower fb1c4ffaaf Whitespace and minor code cleanup
This is by no means comprehensive, but is quite a bit better already.

Change-Id: Ibc8654a5dfb0eec39cbd0b64bdb52bb4fbfe2f7e
2014-06-04 09:13:37 -05:00
Ethan Yonker 87c7bac9c9 Add options to repair or change file system
Change-Id: I9043e98e1e1ed4722f05c13a60b43d2d0bf739f6
2014-06-04 15:46:32 +02:00