Commit Graph

58 Commits

Author SHA1 Message Date
bigbiff
d58ba18272 AOSP10 TWRP Merge: fix conflicts and update libraries needed
This allows flame to boot TWRP. Still will need to work on
super partition for vendor and system access.

The plan will be to cherry-pick any updates to android-9.0
through gerrit.twrp.me to this branch as a WIP.
2020-03-23 11:18:29 -04:00
Matt Mower
874136434a SELinux can be assumed for Android 4.4+
Change-Id: I7410a0c8e439eec90a955ee9201efd9a92bb9635
2017-01-18 12:40:26 -06:00
Ethan Yonker
34ae483e02 Update to 7.0
Change-Id: I621cc47352f7ac552d9602485825ae3a6f9ae516
2016-08-24 15:32:18 -05:00
Yabin Cui
0d28ba452f resolve merge conflicts of e5d3d15cd2 to nyc-dev
Change-Id: Ie8b30e6b114b648e8c03866456c64cf8b740d1e3
2016-02-22 22:16:44 -08:00
Yabin Cui
4f2df162c6 Fix integer overflows in recovery procedure.
Bug: 26960931
Change-Id: Ieae45caccfb4728fcf514f0d920976585d8e6caf
(cherry picked from commit a029c9a458)
2016-02-22 11:02:08 -08:00
nkk71
6069a793ea minzip: Add support for >2GB zipfile
normal zip limit is 4GB, but due to signed variables it will only
access 2GB (32bit signed integer is from -2GB to +2GB).

these changes allow for a theoretical limit of 4GB zips to be flashed.
RAM restrictions still apply, and on a 32bit system it's likely to max
out at approx 2.8GB flashable zip, above that mmap will probably fail.

Note: the flashable zip also needs a compatible update-binary which
include these changes.
(this also applies to both aroma installer if it's being used).

Change-Id: Ib3af2945c9bd4890a2e6dc45acfc2b80ec55473b
2016-01-22 17:45:46 +01:00
Matt Mower
231daef285 minzip: Fixup libselinux includes
Change-Id: Ic68f307a33e36437b9d21c442265c506b592129c
2015-12-22 14:34:13 -06:00
maxwen
c3540a96ec Revert :Force sync files written by minzip
forward port from 5.x
https://gerrit.omnirom.org/#/c/12524/

Change-Id: I303662cf28278bd9dd3799b3d0b5a07f96169416
2015-10-25 22:22:10 +01:00
that
5064048ec3 Improve error handling for zip install
- minzip: don't crash with corrupted zips (e.g. 4096 null bytes)
- twinstall: output error when zip doesn't contain update-binary
- twinstall: add strerror(errno) to system-level errors
- twinstall: correct message if /file_contexts could not be extracted
- twinstall: use TWFunc::Wait_For_Child for better waitpid errors
- twinstall: minor code cleanup

Change-Id: I53b156b0ec08755af2742bb71d1523ae38f4a82e
2015-10-15 16:10:53 +02:00
Ethan Yonker
c798c9cd24 Merge up to AOSP marshmallow-release
In order to maintain compatibility with older trees, we now have
minadbd.old and minui.old. I had to use a TARGET_GLOBAL_CFLAG to
handle ifdef issues in minui/minui.d because healthd includes
minui/minui.h and there was no other alternative to make minui.h
compatible with older trees without having to modify healthd rules
which is outside of TWRP.

Note that the new minui does not currently have support for qcom
overlay graphics. Support for this graphics mode will likely be
added in a later patch set. If you are building in a 6.0 tree and
have a device that needs qcom overlay graphics, be warned, as off
mode charging may not work properly. A dead battery in this case
could potentially brick your device if it is unable to charge as
healthd handles charging duties.

Update rules for building toolbox and add rules for making toybox

Use permissive.sh in init.rc which will follow symlinks so we do
not have to worry about what binary is supplying the setenforce
functionality (toolbox, toybox, or busybox).

Fix a few warnings in the main recovery binary source code.

Fix a few includes that were missing that prevented compiling in
6.0

Change-Id: Ia67aa2107d260883da5e365475a19bea538e8b97
2015-10-09 11:15:29 -05:00
Tao Bao
d7d0f75034 Clean up LOG functions.
For fatal errors, use LOGE to show messages.

Bug: 22236461
Change-Id: Ie2ce7ec769f4502d732fbb53fb7b303c0cf9ed68
2015-07-16 13:43:46 -07:00
Tao Bao
485b63702c recovery: Switch applypatch/ and updater/ to cpp.
Mostly trivial changes to make cpp compiler happy.

Change-Id: I1b0481465c67c3bbca35a839d0764190d84ff34e
(cherry picked from commit ba9a42aa7e)
2015-07-13 23:25:46 -07:00
Elliott Hughes
f267dee1ca Just use fstat in sysMapFile.
Also turn on -Werror and remove a dead function.

Change-Id: I436f0a91c40e36db985190b3b98b0a4527cf0eeb
2015-06-23 12:31:02 -07:00
Tao Bao
80e46e08de recovery: Switch to clang
And a few trival fixes to suppress warnings.

Change-Id: I38734b5f4434643e85feab25f4807b46a45d8d65
2015-06-03 11:30:03 -07:00
Elliott Hughes
2f5feedf1d Check all lseek calls succeed.
Also add missing TEMP_FAILURE_RETRYs on read, write, and lseek.

Bug: http://b/20625546
Change-Id: I03b198e11c1921b35518ee2dd005a7cfcf4fd94b
(cherry picked from commit 7bad7c4646)
2015-04-29 21:14:56 -07:00
Elliott Hughes
7bad7c4646 Check all lseek calls succeed.
Also add missing TEMP_FAILURE_RETRYs on read, write, and lseek.

Bug: http://b/20625546
Change-Id: I03b198e11c1921b35518ee2dd005a7cfcf4fd94b
2015-04-29 17:46:43 -07:00
Elliott Hughes
9ad9d66f81 Remove a couple of unused inlines from minzip/Zip.h.
Change-Id: I805883e3863673416898bdef39c5703ca33f18e0
2015-04-08 12:08:32 -07:00
Andrew Dodd
de72a98328 Revert "Force sync files written by minzip."
This has been causing significant performance degradation when flashing updates
for the entirety of 5.0.

I was originally hesitant to do this since we don't want unsynced files on an update,
however - Our updater-script unmounts /system at the end of installation, which
will force a sync.  As a result the issue Google was trying to fix won't be present
for our ZIPs.

This reverts commit a6c142f2a5.

Change-Id: I89b22e2677c4eda4d3e6338adc0046bf754d43b2
2015-03-13 19:49:29 +01:00
Narayan Kamath
9c0f5d6b34 Remove more dead code from minzip.
I've added explanatory comments to mzExtractRecursive because
that function will live on as a utility even after we move the
zip format related logic to libziparchive.

bug: 19472796

(cherry-picked from commit c9ccdfd7a42de08c47ab771b94dc5b9d1f957b95)

Change-Id: I8b7fb6fa3eafb2e7ac080ef7a7eceb691b252d8a
2015-02-27 12:58:16 +00:00
Narayan Kamath
6f58e899be am 829d392a: Merge "Delete unused functions from minzip."
* commit '829d392a75f536861adfddefc21ec635f3460144':
  Delete unused functions from minzip.
2015-02-24 13:18:14 +00:00
Narayan Kamath
3e700cff53 Delete unused functions from minzip.
This is in preparation of replacing it with libziparchive and
providing shim wrappers.

bug: 19472796
Change-Id: I1f2fb59ee7a41434e794e4ed15b754aa2b74a11d
2015-02-23 13:29:16 +00:00
Nick Kralevich
ec5c1c1e29 am 99e084ca: Merge "Remove dead/unused code and realign some of the comments to make it more cleaner and easier to read"
* commit '99e084ca8012bc7af52ae2fb9e72ab7180177daf':
  Remove dead/unused code and realign some of the comments to make it more cleaner and easier to read
2015-02-08 15:20:50 +00:00
Nanik Tolaram
4e8e93b666 Remove dead/unused code and realign some of the comments
to make it more cleaner and easier to read

Change-Id: If536d482c0ed645368084e76d8ec060f05d89137
Signed-off-by: Nanik Tolaram <nanikjava@gmail.com>
2015-02-08 22:31:14 +11: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
a167416289 Merge in lollipop and attempt to fix merge conflicts
This will probably not compile and may need additional work.
For tracking purposes so we know what might still need looking at
as none of this has been compiled and tested, here is a list of
the merge conflicts that I attempted to fix before pushing this
set of changes:

git pull aosp lollipop-release
remote: Finding sources: 100% (992/992)
remote: Total 992 (delta 473), reused 992 (delta 473)
Receiving objects: 100% (992/992), 1.51 MiB | 516.00 KiB/s, done.
Resolving deltas: 100% (473/473), completed with 42 local objects.
From https://android.googlesource.com/platform/bootable/recovery
 * branch            lollipop-release -> FETCH_HEAD
 * [new branch]      lollipop-release -> aosp/lollipop-release
Auto-merging verifier_test.cpp
CONFLICT (content): Merge conflict in verifier_test.cpp
Auto-merging verifier.h
CONFLICT (content): Merge conflict in verifier.h
Auto-merging verifier.cpp
CONFLICT (content): Merge conflict in verifier.cpp
Auto-merging updater/updater.c
Auto-merging updater/install.c
CONFLICT (content): Merge conflict in updater/install.c
Auto-merging updater/Android.mk
CONFLICT (content): Merge conflict in updater/Android.mk
Auto-merging uncrypt/Android.mk
CONFLICT (content): Merge conflict in uncrypt/Android.mk
Auto-merging ui.cpp
CONFLICT (content): Merge conflict in ui.cpp
Auto-merging screen_ui.cpp
Auto-merging roots.cpp
CONFLICT (content): Merge conflict in roots.cpp
CONFLICT (rename/delete): res-hdpi/images/progress_fill.png deleted
in HEAD and renamed in cddb68b5ea.
Version cddb68b5ea of
res-hdpi/images/progress_fill.png left in tree.
CONFLICT (rename/delete): res-hdpi/images/progress_empty.png deleted
in HEAD and renamed in cddb68b5ea.
Version cddb68b5ea of
res-hdpi/images/progress_empty.png left in tree.
CONFLICT (rename/delete): res-hdpi/images/icon_error.png deleted
in HEAD and renamed in cddb68b5ea.
Version cddb68b5ea of
res-hdpi/images/icon_error.png left in tree.
Auto-merging recovery.cpp
CONFLICT (content): Merge conflict in recovery.cpp
Auto-merging minui/resources.c
CONFLICT (content): Merge conflict in minui/resources.c
Auto-merging minui/minui.h
CONFLICT (content): Merge conflict in minui/minui.h
Auto-merging minui/graphics.c
CONFLICT (content): Merge conflict in minui/graphics.c
Auto-merging minui/Android.mk
CONFLICT (content): Merge conflict in minui/Android.mk
Removing minelf/Retouch.h
Removing minelf/Retouch.c
Auto-merging minadbd/usb_linux_client.c
CONFLICT (content): Merge conflict in minadbd/usb_linux_client.c
Auto-merging minadbd/adb.h
CONFLICT (content): Merge conflict in minadbd/adb.h
Auto-merging minadbd/adb.c
CONFLICT (content): Merge conflict in minadbd/adb.c
Auto-merging minadbd/Android.mk
CONFLICT (content): Merge conflict in minadbd/Android.mk
Removing make-overlay.py
Auto-merging install.h
CONFLICT (content): Merge conflict in install.h
Auto-merging etc/init.rc
CONFLICT (content): Merge conflict in etc/init.rc
Auto-merging bootloader.h
Auto-merging applypatch/applypatch.c
Auto-merging applypatch/Android.mk
CONFLICT (content): Merge conflict in applypatch/Android.mk
Auto-merging adb_install.cpp
CONFLICT (content): Merge conflict in adb_install.cpp
Auto-merging Android.mk
CONFLICT (content): Merge conflict in Android.mk
Automatic merge failed; fix conflicts and then commit the result.

Change-Id: I3e0e03e48ad8550912111c7a5c9a140ed0267e2c
2014-11-06 08:35:13 -06:00
Michael Runge
a6c142f2a5 Force sync files written by minzip.
Some files appear to be missing their sync to disk.

Bug: 18145574
Change-Id: Ic858624a4dd65bbfc54d30f3a13c607078270345
2014-10-29 13:29:40 -07:00
Michael Runge
042c3cd04e Force sync files written by minzip.
Some files appear to be missing their sync to disk.

Bug: 18145574
Change-Id: Ic858624a4dd65bbfc54d30f3a13c607078270345
2014-10-28 19:49:57 -07:00
Michael Runge
f5d9f89152 Allow 0-byte files in full OTAs.
Currently, the writeProcessFunction fails when
there are zero bytes to write, potentially returning
errno from a previous operation, or hanging
indefinitely while it waits for a >0 result on a
write of size 0.  This happens when the output
file is intended to be zero bytes in size.

Change-Id: Ib3cfcaf66d82942bc89e5f5c64697862403b38da
2014-05-09 18:09:28 +00:00
Mark Salyzyn
76b245c24c minzip: 64 bit build issue
Regression - verification and extraction on memory, not files

Bug: 12188746
Change-Id: Ib6facc4aff6be3a31a7d184ef1c493fdd4012c21
2014-03-17 16:05:12 -07:00
Doug Zongker
a9300301ce add mzGetStoredEntry function
mzGetStoredEntry gives you a pointer and address to the data of a zip
entry, assuming that entry is stored rather than deflated.

Change-Id: Ifb39777c98d1d50475ef7de419cf28935f5f9965
2014-02-13 08:30:41 -08:00
Colin Cross
707d321a87 am 2739ed96: am a5d105e2: Merge "recovery: fix building with pointer-to-int errors turned on"
* commit '2739ed9628f72813d213b7a429c4c1b8dcebe5fc':
  recovery: fix building with pointer-to-int errors turned on
2014-02-06 03:07:48 +00:00
Colin Cross
92cdf9c372 recovery: fix building with pointer-to-int errors turned on
Use intptr_t/uintptr_t to cast between pointer and int to allow
building with -Werror=pointer-to-int-cast and
Werror=int-to-pointer-cast turned on.

Cast to char* instead of unsigned int for pointer arithmetic.

Change-Id: Ia862306fdcca53866b330e8cf726f3d62f2248a0
2014-02-05 17:34:45 -08:00
Doug Zongker
19a8e2463c log extra info for debugging
Make recovery log its PID, and when we use a block map file, log how
many ranges it contains.

Change-Id: I1b4299f8163af68a770b48c029ae25e6cb45d26b
2014-01-21 09:25:41 -08:00
Doug Zongker
99916f0496 do verification and extraction on memory, not files
Changes minzip and recovery's file signature verification to work on
memory regions, rather than files.

For packages which are regular files, install.cpp now mmap()s them
into memory and then passes the mapped memory to the verifier and to
the minzip library.

Support for files which are raw block maps (which will be used when we
have packages written to encrypted data partitions) is present but
largely untested so far.

Bug: 12188746
Change-Id: I12cc3e809834745a489dd9d4ceb558cbccdc3f71
2014-01-16 13:29:28 -08:00
Doug Zongker
2768efdf9f remove dead code from minzip
minzip had some features that were used when reading APKs, but APK
handling now uses libziparchive instead of minzip.  Remove these
unused functions.

Change-Id: Iead89209a716bfe9e3d339bf85b3e97e33a41f35
2014-01-13 10:51:13 -08:00
Nick Kralevich
46ab1b6138 updater: Delete dead code
set_perm and set_perm_recursive are no longer used. Delete.

(cherry picked from commit 08ef9a9570)

Change-Id: I1bcc90ae19af9df4f0705496c5876987159f75ac
2013-09-17 10:20:45 -07:00
Dees Troy
4bf3b0d804 Make SELinux automatic if present 2013-09-12 10:38:15 -05:00
Nick Kralevich
08ef9a9570 updater: Delete dead code
set_perm and set_perm_recursive are no longer used. Delete.

Change-Id: I3bb40b934b6c093b24b88aa4ed6f3c7de2bb52f0
2013-09-11 11:37:10 -07:00
Nick Kralevich
3328e3bc81 Revert "Update OTA installer to understand SELinux filesystem labels"
This reverts commit 627eb30f73.

Bug: 10183961
Bug: 10186213
2013-09-09 10:47:14 -07:00
Dees_Troy
1669f89dd2 Update to latest AOSP master
Merge in latest commits from AOSP master and fix merge conflicts
2013-09-04 19:00:58 +00:00
Nick Kralevich
627eb30f73 Update OTA installer to understand SELinux filesystem labels
Modify the OTA installer to understand SELinux filesystem labels.

We do this by introducing new set_perm2 / set_perm2_recursive
calls, which understand SELinux filesystem labels. These filesystem
labels are applied at the same time that we apply the
UID / GID / permission changes.

For compatibility, we preserve the behavior of the existing
set_perm / set_perm_recursive calls.

If the destination kernel doesn't support security labels, don't
fail. SELinux isn't enabled on all kernels.

Bug: 8985290
Change-Id: I99800499f01784199e4918a82e3e2db1089cf25b
2013-07-18 15:21:12 -07:00
Dees_Troy
f6b15d1d45 Fix building of updater binary 2013-04-11 15:29:54 +00:00
Dees_Troy
2673cec07a Move all AOSP code out of recovery binary
Improves license compatibility between GPL and Apache

Change-Id: I2b165aa575bb6213af6b07936f99610c113443f0
2013-04-04 18:57:34 +00:00
Elliott Hughes
9da1880118 am 9028fb4d: Merge "Pass the correct pointer to munmap on failure."
* commit '9028fb4d4ceed040c7d3ae9b1ceaa5a7472856ba':
  Pass the correct pointer to munmap on failure.
2012-12-17 12:11:47 -08:00
Elliott Hughes
c86f22c131 Pass the correct pointer to munmap on failure.
This won't ever happen, and you're probably screwed anyway if it
does, but that's no excuse...

Change-Id: I2c56f607e351e84308a72b41b834d13aaa98fc62
2012-12-17 09:26:50 -08:00
Doug Zongker
bf80f49edc reduce some recovery logging
Make minzip log only a count of files when extracting, not individual
filenames.  Make patching only chatter about free space if there's not
enough and compact the other messages.

Only the last 8k of the recovery log gets uploaded; this makes it more
likely that we will get all of it.

Change-Id: I529cb4947fe2185df82b9da5fae450a7480dcecd
2012-10-19 12:24:26 -07:00
Kenny Root
7eb7567aa3 Remove HAVE_SELINUX guards
Change-Id: Ia96201f20f7838d7d9e8926208977d3f8318ced4
2012-10-16 12:57:26 -07:00
Edwin Vane
0298ec21d2 Fix multiple defined symbol errors
Use of __inline__ by projects in bootable/* was causing problems with
clang. Following the BKM and replaced use of __inline__ with
__attribute((__gnu_inline)).

Change-Id: If4ccfded685bb2c9d9c23c9b92ee052208399ef0
Author: Edwin Vane <edwin.vane@intel.com>
Reviewed-by: Kevin P Schoedel <kevin.p.schoedel@intel.com>
2012-08-21 16:04:21 -04:00
Kenny Root
41dda82d84 resolved conflicts for merge of 0b1fee1b to master
Change-Id: I2e8298ff5988a96754f56f80a5186c9605ad9928
2012-03-30 21:26:01 -07:00
Stephen Smalley
779701db51 Extend recovery and updater to support setting file security contexts.
Extend minzip, recovery, and updater to set the security context on
files based on the file_contexts configuration included in the package.

Change-Id: Ied379f266a16c64f2b4dca15dc39b98fcce16f29
2012-03-30 09:32:46 -04:00