Commit Graph

916 Commits

Author SHA1 Message Date
Alistair Strachan 027429a34f Restore default umask after forking for update-binary.
A system/core change made in Mar 26 2012 6ebf12f "init: Change umask
of forked processes to 077" changed the default umask of services
forked from init.

Because recovery is forked from init, it has a umask of 077. Therefore
when update-binary is forked from recovery, it too has a umask of 077.

This umask is overly restrictive and can cause problems for scripts
relying on minzip to extract binaries directly into the target
filesystem. Any directories updated by minzip will have their
permissions reset to r-x------ and created files will have similarly
restrictive permissions.

As it seems unlikely this security measure was intended to have this
side effect on legacy sideloads that do not have chmods to repair
the damage done by minzip, this change reverts the umask to 022 in
the fork made for update-binary.

Change-Id: Ib1a3fc83aa4ecc7480b5d0c00f3c7d0d040d4887
2013-11-18 09:52:46 -08:00
Alistair Strachan 9b8ae8038b Fix rare crash seen when dereferencing backgroundIcon[NONE].
Because backgroundIcon[] is not initialized by the ScreenRecoveryUI
constructor, it should be initialized explicitly to NULL in Init().

If it is not initialized, ScreenRecoveryUI::SetBackground() can fail
for the NONE icon because the NULL test can fail and junk will be
dereferenced.

Change-Id: I4e3738d2e241ed90df43c984fb41e0072933f50a
2013-11-18 09:51:32 -08:00
Michael Runge 9690e2b370 am 40dfc474: am c64e76c7: Merge "Enable incremental builder to find files that moved, and try to process them via patch + rename, instead of delete + add." into klp-dev
* commit '40dfc474c457f5be24e204e6a0c657c97acb8f3c':
  Enable incremental builder to find files that moved, and try to process them via patch + rename, instead of delete + add.
2013-11-07 16:13:15 -08:00
Michael Runge 40dfc474c4 am c64e76c7: Merge "Enable incremental builder to find files that moved, and try to process them via patch + rename, instead of delete + add." into klp-dev
* commit 'c64e76c75088b951f61a7f7bacf8af6eccd2ccfa':
  Enable incremental builder to find files that moved, and try to process them via patch + rename, instead of delete + add.
2013-11-07 15:00:42 -08:00
Michael Runge c64e76c750 Merge "Enable incremental builder to find files that moved, and try to process them via patch + rename, instead of delete + add." into klp-dev 2013-11-07 22:55:51 +00:00
Michael Runge ce7ca7165b Enable incremental builder to find files that moved, and
try to process them via patch + rename, instead of
delete + add.

b/11437930

Change-Id: I984349fbc9a8dac4379e00c0d66fc7d22c4eb834
2013-11-07 12:29:14 -08:00
Ed Heyl 92a4f94478 am a370c0f7: am 3966c571: merge in klp-release (no-op)
* commit 'a370c0f7fe65d6f012902342249d3a84b474f277':
2013-10-16 17:49:14 -07:00
Ed Heyl a370c0f7fe am 3966c571: merge in klp-release (no-op)
* commit '3966c571a0c36a40a8142e70b1aa6de547ea6ec3':
2013-10-16 17:44:12 -07:00
Ed Heyl 3966c571a0 merge in klp-release (no-op) 2013-10-16 17:34:54 -07:00
Kenny Root 9f6bfa302a am fc7eab96: am f4a6ab27: Merge "Add support for ECDSA signatures"
* commit 'fc7eab961f9dc85ee88e8c37ca1dc31a7f7b8331':
  Add support for ECDSA signatures
2013-10-14 14:12:49 -07:00
Kenny Root fc7eab961f am f4a6ab27: Merge "Add support for ECDSA signatures"
* commit 'f4a6ab27b335b69fbc419a9c1ef263004b561265':
  Add support for ECDSA signatures
2013-10-14 14:08:21 -07:00
Kenny Root f4a6ab27b3 Merge "Add support for ECDSA signatures" 2013-10-14 21:04:56 +00:00
Kenny Root 7a4adb5268 Add support for ECDSA signatures
This adds support for key version 5 which is an EC key using the NIST
P-256 curve parameters. OTAs may be signed with these keys using the
ECDSA signature algorithm with SHA-256.

Change-Id: Id88672a3deb70681c78d5ea0d739e10f839e4567
2013-10-10 14:19:19 -07:00
Ed Heyl a47beb5dac am 053c1c5e: am 7fdeb1f9: merge in KQS81M
* commit '053c1c5e89136bd78c39c9e4a300d95f1cb3772d':
  Don't apply permission changes to symlink.
  recovery: fix use of init reboot method
2013-10-09 09:12:02 -07:00
Ed Heyl 053c1c5e89 am 7fdeb1f9: merge in KQS81M
* commit '7fdeb1f9d7c1e979ebf78725bbf000bcb8c6ffc3':
  Don't apply permission changes to symlink.
  recovery: fix use of init reboot method
2013-10-08 15:45:46 -07:00
Ed Heyl 7fdeb1f9d7 merge in KQS81M 2013-10-08 15:35:29 -07:00
The Android Automerger 91321f60ae merge in klp-release history after reset to klp-dev 2013-10-03 06:01:22 -07:00
Michael Runge f0af761369 am efef45ed: am a2a1ce82: Allow child classes to override the overlay location for the update image.
* commit 'efef45ede6f7588bd3f584d7746ca9822ade58ac':
  Allow child classes to override the overlay location for the update image.
2013-10-02 20:28:01 -07:00
Michael Runge efef45ede6 am a2a1ce82: Allow child classes to override the overlay location for the update image.
* commit 'a2a1ce823b8c76451ee2b38155b347b0c2ced714':
  Allow child classes to override the overlay location for the update image.
2013-10-02 17:00:24 -07:00
Michael Runge a2a1ce823b Allow child classes to override the overlay location for the
update image.

b/10952479

Change-Id: I59bb834f271f702fb529054dab7926b816fa35cc
2013-10-02 16:31:07 -07:00
Bjorn Andersson 80a7a4642b screen_ui: Initialize text buffer
Zero initialize the text buffer to make recovery not
render garbage when showing the menu or messages.

Change-Id: I0dd0d357757f6b0fd52ad3b3617d42bb1b835245
2013-09-30 13:57:49 -07:00
Doug Zongker 58207b84d3 fix use of RGBA images in minui
Bug: 10934401
Change-Id: I471b30e5b2e877c620e4a0a524e950cddbc6d2c0
2013-09-25 16:41:07 -07:00
Kenny Root bb83e14c49 am dd92a4d6: am 58c60900: Merge "verifier: update to support certificates using SHA-256"
* commit 'dd92a4d625a6735651efeb12a5707620bc5c6339':
  verifier: update to support certificates using SHA-256
2013-09-25 10:23:05 -07:00
Kenny Root dd92a4d625 am 58c60900: Merge "verifier: update to support certificates using SHA-256"
* commit '58c60900ac3682fab08f64373bdd1020713b48f7':
  verifier: update to support certificates using SHA-256
2013-09-25 10:19:33 -07:00
Kenny Root 58c60900ac Merge "verifier: update to support certificates using SHA-256" 2013-09-25 17:14:59 +00:00
Doug Zongker 30362a6ad1 verifier: update to support certificates using SHA-256
(cherry picked from commit bac7fba027)

Change-Id: I01c38d7fea088622a8b0bbf2c833fa2d969417af
2013-09-25 10:11:46 -07:00
Nick Kralevich 0ca7e00da7 am 46ab1b61: updater: Delete dead code
* commit '46ab1b6138bf911120280f1095ff9479dceee3df':
  updater: Delete dead code
2013-09-18 10:09:00 -07:00
Todd Poynor a5ef19fabd recovery: fix epoll events type to uint32_t
Change-Id: I5db9987102201c18821acb45d1f824e9865a1451
2013-09-17 21:58:52 +00: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
Todd Poynor be96809d18 start healthd in recovery mode
Change-Id: I431ece69b6856fd1ea6079c38cdeb593c15d7385
2013-09-13 16:34:12 -07:00
Todd Poynor 4665ede960 minui: add ev_get_epollfd() to retrieve epoll file descriptor
To allow use of ev_* functions with an external main loop.

Change-Id: If73717b64d7c455ca726b90a815a31c1edf52544
2013-09-12 12:42:34 -07:00
Todd Poynor e7265df352 recovery: ui changes for ev_*() switch to epoll
Convert callback events parameter to unsigned int.

Change-Id: Ife0e983f307c07bf4aca807d70574aeb20c460cd
2013-09-12 12:42:33 -07:00
Todd Poynor 1fc89d4c84 minui: convert ev_*() event interface to epoll
Help enable external main loop combined with ev_*() key event processing.

Specify EPOLLWAKEUP to hold a wakelock on any event, assuming this is needed
(may need to make this optional).

Convert callback events parameter to unsigned int.

Change-Id: Ib5e09abbd7724ffd830e2cf8e25e7eb59d3aa072
2013-09-12 12:42:33 -07:00
The Android Automerger c287321e9c merge in klp-release history after reset to klp-dev 2013-09-12 06:00:47 -07:00
Doug Zongker 743e24f161 am 1306a7ef: am cc2958fd: fix secure adb in recovery
* commit '1306a7effafab77cf2769091619518c2ab263ee8':
  fix secure adb in recovery
2013-09-11 17:23:33 -07:00
Doug Zongker 1306a7effa am cc2958fd: fix secure adb in recovery
* commit 'cc2958fd7f32f79d1a034eee005e04afeb310a87':
  fix secure adb in recovery
2013-09-11 13:39:03 -07:00
Doug Zongker cc2958fd7f fix secure adb in recovery
Recovery's init.rc was missing a line (added to the main system's
init.rc in change Ic97fd464440ff4a29fc9da7ad15949ac5215ade3) is
required for secure adb to work.

Change-Id: Id79b94d2abb4cbe3cca7cabeb4bc5faf7205e56b
2013-09-11 13:24:32 -07: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 d456944f02 Don't apply permission changes to symlink.
Bug: 10183961
Bug: 10186213
Bug: 8985290
Change-Id: I57cb14af59682c5f25f1e091564548bdbf20f74e
2013-09-10 17:13:23 -07:00
Nick Kralevich 53e8f30918 am af677d78: am e461251e: Don\'t apply permission changes to symlink.
* commit 'af677d786e6333187ccbd4f7fe6f371a09b71645':
  Don't apply permission changes to symlink.
2013-09-10 15:51:42 -07:00
Nick Kralevich af677d786e am e461251e: Don\'t apply permission changes to symlink.
* commit 'e461251e2caa5561cf6a315bffaebfd4eb896b1d':
  Don't apply permission changes to symlink.
2013-09-10 15:50:08 -07:00
Nick Kralevich e461251e2c Don't apply permission changes to symlink.
Bug: 10183961
Bug: 10186213
Bug: 8985290
Change-Id: I57cb14af59682c5f25f1e091564548bdbf20f74e
2013-09-10 15:34:19 -07:00
The Android Automerger c4a3a4bcc8 merge in klp-release history after reset to klp-dev 2013-09-10 14:28:02 -07:00
Nick Kralevich c724eee592 am cc421662: am 5dbdef0e: updater: introduce and set_metadata and set_metadata_recursive
* commit 'cc421662d7f9b68627204b8c8bfb4a5cada74125':
  updater: introduce and set_metadata and set_metadata_recursive
2013-09-10 11:20:40 -07:00
Nick Kralevich 863f4ef587 am 5ae88e89: am 3328e3bc: Revert "Update OTA installer to understand SELinux filesystem labels"
* commit '5ae88e899836e7e3350db55ac47aee6f219cf126':
  Revert "Update OTA installer to understand SELinux filesystem labels"
2013-09-10 11:20:39 -07:00
Nick Kralevich cc421662d7 am 5dbdef0e: updater: introduce and set_metadata and set_metadata_recursive
* commit '5dbdef0e5b8a841fadc64d016d10ce81a962b284':
  updater: introduce and set_metadata and set_metadata_recursive
2013-09-10 11:18:24 -07:00
Nick Kralevich 5ae88e8998 am 3328e3bc: Revert "Update OTA installer to understand SELinux filesystem labels"
* commit '3328e3bc81161c2a57ea94d304162276facdd826':
  Revert "Update OTA installer to understand SELinux filesystem labels"
2013-09-10 11:18:24 -07:00
Nick Kralevich 5dbdef0e5b updater: introduce and set_metadata and set_metadata_recursive
Introduce two new updater functions:

* set_metadata
* set_metadata_recursive

Long term, these functions are intended to be more flexible replacements
for the following methods:

* set_perm
* set_perm_recursive

Usage:

  set_metadata("filename", "key1", "value1", "key2", "value2", ...)
  set_metadata_recursive("dirname", "key1", "value1", "key2", "value2", ...)

Description:

set_metadata() and set_metadata_recursive() set the attributes on a file/directory
according to the key/value pairs provided. Today, the following keys are
supported:

* uid
* gid
* mode (set_perm_extd only)
* fmode (set_perm_extd_recursive only)
* dmode (set_perm_extd_recursive only)
* selabel
* capabilities

Unknown keys are logged as warnings, but are not fatal errors.

Examples:

* set_metadata("/system/bin/netcfg", "selabel", "u:object_r:system_file:s0");

This sets the SELinux label of /system/bin/netcfg to u:object_r:system_file:s0.
No other changes occur.

* set_metadata("/system/bin/netcfg", "uid", 0, "gid", 3003, "mode", 02750, "selabel", "u:object_r:system_file:s0", "capabilities", 0x0);

This sets /system/bin/netcfg to uid=0, gid=3003, mode=02750,
selinux label=u:object_r:system_file:s0, and clears the capabilities
associated with the file.

* set_metadata_recursive("/system", "uid", 0, "gid", 0, "fmode", 0644, "dmode", 0755, "selabel", "u:object_r:system_file:s0", "capabilities", 0x0);

All files and directories under /system are set to uid=0, gid=0,
and selinux label=u:object_r:system_file:s0. Directories are set to
mode=0755.  Files are set to mode=0644 and all capabilities are cleared.

Bug: 10183961
Bug: 10186213
Bug: 8985290
Change-Id: Ifdcf186a7ed45265511dc493c4036e1ac5e3d0af
2013-09-10 10:24:24 -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
Doug Zongker 9e805d6ca0 allow CheckKey to request mounting /system
Also provide a default implementation of CheckKey that's reasonable
for many devices (those that have power and volume keys).

Change-Id: Icf6c7746ebd866152d402059dbd27fd16bd51ff8
2013-09-04 15:02:29 -07:00