summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* futility: Fix build failure by missing struct declarationfactory-eve-9667.BHung-Te Lin2019-01-181-0/+1
| | | | | | | | | | | | | | | | | The factory branch seem to not always include vb2 structures so we have to declare directly in futility.h. BUG=chromium:923331 TEST=make futil -j Change-Id: I4b4073244b034426544d8f4f1dd79a0c8c36b7e7 Reviewed-on: https://chromium-review.googlesource.com/c/1421579 Reviewed-by: Hung-Te Lin <hungte@chromium.org> Commit-Queue: Hung-Te Lin <hungte@chromium.org> Tested-by: Hung-Te Lin <hungte@chromium.org> Trybot-Ready: Hung-Te Lin <hungte@chromium.org> (cherry picked from commit b861c14e3f19d712f76093309071873a5bef08b3) Reviewed-on: https://chromium-review.googlesource.com/c/1421584
* futility: updater: Correct HWID digest when preserving HWIDHung-Te Lin2019-01-164-13/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | Starting from GBB 1.2, a digest is stored in GBB and must be updated whenever the HWID string is changed. In shell script version of updater, the digest is automatically updated when we do "futility gbb -s --hwid=XXX", but in native updater implementation we only updated the HWID string and left digest unchanged, this leaves devices generating wrong PCR1 values. `cmd_gbb_utility` updates the digest by calling `update_hwid_digest` using vboot1 structure, so we should introduce a new vboot2 friendly function, `vb2_change_hwid`, which changes both HWID string and digest at same time. Note this has no impact for end user's devices with write protection enabled. Only changes dogfood units AU results. BUG=b:122248649 TEST=make futil; tests/futility/run_test_scripts.sh $(pwd)/build/futility BRANCH=none Change-Id: I6ad2754e6df3c9dd66d71c560a2afc26d14eae33 Signed-off-by: Hung-Te Lin <hungte@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/1411947
* futility: Add firmware updater as 'futility update'Hung-Te Lin2018-11-0513-33/+4454
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The factory branches may need to run firmware updater extracted from newer release images which relies on 'futility update' to run. This change collects all related changes: 6b231132 Makefile: Build utils for both dynamic and static version. 319f269b futility_s: add vbutil_firmware & vbutil_key 5c01f864 Makefile: Build futility without utillib to extend arch support a6f548d1 Makefile: Add pthread library to the futility static build bb351eff Revert "Makefile: Build futility without utillib to extend arch support" b31e5f09 futility: Add 'Error' utility macro eee33827 futility: Add 'update' command for updating firmware 22266d1f futility: cmd_update: Support loading image files by -i, -e, --pd_image 6d30a78a futility: cmd_update: Process FMAP and parse image version 035f0da2 futility: cmd_update: Access system firmware using external flashrom 039ad74d futility: cmd_update: Add '--emulate' option e04be109 futility: cmd_update: Implement updater logic "FULL UPDATE". 0a368cac futility: cmd_update: Add "system property" and '--sys_props' to override 8017381e futility: cmd_update: Implement updater logic "RW UPDATE". b77e2548 futility: cmd_update: Add 'mainfw_act' system property 6b1ead30 futility: cmd_update: Implement updater logic "TRY-RW" (--try) eb0c9caf futility: cmd_update: Preserve image sections before update 9f27a900 futility: cmd_update: Check contents before starting to update e25ffef4 futility: cmd_update: Use real system write protection status f7b99d00 futility: cmd_update: Add vboot1 updater logic b0f5a8f9 futility: cmd_update: Check platform compatibility before updating c13d39fa futility: cmd_update: Check TPM key versions before updating ede6a006 futility: cmd_update: Check RO and RW signing compatibility before updating 8b86ee5d futility: cmd_update: Add more legacy updater options 6a867bc4 futility: cmd_update: Correct updating logic for RW_LEGACY 27fc2478 futility: cmd_update: Preserve sections blocked by management engine 35c99021 futility: cmd_update: Revise debug and error message macro 86162304 futility: drop static build b5a4e47c futility: cmd_update: Correctly handle error counter 50cf198c futility: cmd_update: Add new 'legacy' mode da4e823f futility: cmd_update: Create and remove temporary files properly 1bb66a0c futility: cmd_update: Add --quirks for device-specific hacks b4243c6b futility: cmd_update: Add quirk 'enlarge_image' c3c9ae6a futility: cmd_update: Add quirk 'unlock_me_for_update' 382375b3 futility: cmd_update: Add quirk 'min_platform_version' cabd2f8c futility: update: Fix update failure in factory mode due to wrong WP logic ac8cb8dd futility: update: Add legacy option '--factory' 79bdb0cc futility: Remove FUTIL_STATIC build rules d6f7c16b futility: update: Skip TPM check if tpm_fwver is not valid. f6198074 futility: update: Preserve new sections: RO_PRESERVE and RW_PRESERVE f67b991a futility: update: Preserve RO_FSG ee96e741 futility: update: Preserve RW_ELOG b07165b5 futility: update: Allow tpm_fwver=0 and allow --force to waive TPM check 5a5be0c7 futility: update: Revise error messages ba73f35e futility: update: Refactor 'emulation' (--emulate). eb166257 futility: update: Add --programmer to override flashrom programmer for servo 5fa5e3b9 futility: update: Refactor: move updater logic to 'updater.c' 243e2115 futility: updater: Refactor: move command line processing to cmd_update.c e7bcda54 futility: updater: Refactor: localize temp files management 8810b089 futility: updater: Refactor: move quirks to 'updater_quirks.c' a1bfb650 futility: updater: Add default quirks a2b9e356 futility: updater: Add quirk 'daisy_snow_dual_model' for daisy_snow ba30c93b futility: updater: Preserve SMMSTORE and add quirk 'eve_smm_store' 38d06701 futility: updater: Support reading main image from stdin f1609b8c futility: updater: Revise verbosity and error messages fabf760f futility: updater: Add ASPRINTF macro 7aa34302 futility: updater: Refactor function names 077026fd futility: updater: Add '--archive' to read from an archive or directory f7c44a32 futility: updater: Refactor how arguments were configured 1847ba4f futility: updater: Add --manifest to scan and print archive info a71e0ccd futility: updater: Allow patching rootkey and vblock files 2ae23df7 futility: updater: Change default model name to FWID platform name 3d615c91 futility: updater: Do not preserve GBB flags in --factory mode. 10b3d4ed futility: updater: Add '--model' and select images by system model 622c35aa futility: updater: Support white label from VPD and --signature_id c6781206 futility: updater: Support --mode=output and --output_dir fb947ae0 futility: update: Add `--host_only` argument 67d66f18 futility: updater: Support --repack and --unpack 1f489393 futility: updater: Fix model detection error BUG=chromium:882445 TEST=make futil; tests/futility/run_test_scripts.sh $(pwd)/build/futility BRANCH=None Change-Id: I6c14133f59561a422a190b17fa8ff7e79c45d953 Signed-off-by: Hung-Te Lin <hungte@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/1317060
* image_signing: sign_official_build.sh: switch verification to loopbacksMike Frysinger2017-06-151-10/+10
| | | | | | | | | | | | | | | | Rather than copy out the rootfs to a temp file and perform checks on that, run the checks directly on the image. This saves us from having to copy many GB worth of data which can be expensive on the VMs (slow disk I/O). BRANCH=None BUG=chromium:714598 TEST=signing images still works Change-Id: Ie7d1c432aacb69e57b6c5fd9ab810b8d0b054860 Reviewed-on: https://chromium-review.googlesource.com/505476 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: David Riley <davidriley@chromium.org>
* futility: Fix issues with validation of recovery MRC cacheFurquan Shaikh2017-06-151-12/+40
| | | | | | | | | | | | | | | | | | | | 1. Current assumption in the validation function is that there is only 1 metadata block present in the cache. However, this is not always true (e.g. KBL boards). Thus, update the check to ensure that only 1 metadata block is actually used if multiple such blocks are present. 2. Add a check to ensure that the offset provided is not greater than the file size. BUG=b:62654773 BRANCH=None TEST=Verified that "futility validate_rec_mrc" works fine with the image provided in bug. Also, verified this works fine for poppy. Change-Id: I84b55d1daf884326a2e970e2ac73110c5eeeaa45 Signed-off-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/537074 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* Add a script to generate a keypair for signing Rose RW firmware.Marco Chen2017-06-121-0/+66
| | | | | | | | | | | | | | | Rose decided to leverage the key format of Hammer therefore this script calls Hammer's one to generate a key pair and renames them to key_rose*. BUG=b:37693819 TEST=None BRANCH=None Change-Id: I1f31afe89a00895434a169401ab76b594ad0a403 Reviewed-on: https://chromium-review.googlesource.com/529504 Commit-Ready: Wei-Ning Huang <wnhuang@chromium.org> Tested-by: Marco Chen <marcochen@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org>
* keygeneration: make helper script executableMike Frysinger2017-06-101-0/+0
| | | | | | | | | | | | BUG=b:35587169 TEST=None BRANCH=None Change-Id: I2098f39dd17893c5e30ed495eaa87935efbcb0ee Reviewed-on: https://chromium-review.googlesource.com/526613 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: Marco Chen <marcochen@chromium.org>
* Add a script to generate a keypair for signing accessory RW firmware.firmware-twinkie-9628.BMarco Chen2017-06-061-0/+66
| | | | | | | | | | | | | BUG=b:35587169 TEST=None BRANCH=None Change-Id: Ibb309c34ca22d30138cb62d698eafb6ee77add8c Reviewed-on: https://chromium-review.googlesource.com/520368 Commit-Ready: Marco Chen <marcochen@chromium.org> Tested-by: Marco Chen <marcochen@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org>
* keygeneration: add some output helpersMike Frysinger2017-06-014-13/+35
| | | | | | | | | | | | | | These use the same forms as in other shell projects in CrOS. BUG=b:35587169 TEST=ran create_new_android_keys.sh and new output works BRANCH=None Change-Id: Id75fd77203795d7837537f12ab948376a7ad105e Reviewed-on: https://chromium-review.googlesource.com/520786 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* detachables: Remove locale switch on up arrowShelley Chen2017-05-271-8/+0
| | | | | | | | | | | | | | | This was old code that switched locale when pressing up arrow. BUG=b:35585623 BRANCH=None TEST=Boot to recovery and make sure up arrow doesn't change the locale. Change-Id: Ibb4d2785170a2e36d599e4af56de3dfd922c5957 Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/517283 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* detachables: Adding language selection menuShelley Chen2017-05-271-15/+64
| | | | | | | | | | | | | | Handle displaying of language menu. BUG=b:35585623 BRANCH=None TEST=Reboot and select Language from menu, select language and make sure displays menu items in current language. Change-Id: I518021c5278895e95cb4afdde044091c5bec7233 Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/477093 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* detachables: Reset timer every time user moves the cursorShelley Chen2017-05-261-0/+6
| | | | | | | | | | | | | | | In dev mode, after 30 seconds of inactivity, we'll get the usual loud beep and automatic boot from disk. BUG=b:35585623 BRANCH=None TEST=reboot and make sure that fw screen timeout only occurs after 30 seconds of inactivity. Change-Id: Id6552f7213a52ed8c0f083a8388719a8fe79fa77 Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/457841 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* detachables: Use locale bitmaps instead of textShelley Chen2017-05-261-37/+25
| | | | | | | | | | BUG=b:35585623 BRANCH=None TEST=reboot and make sure that the bitmaps show up Change-Id: I92a9cf7dc808a22c7ace25763d4ef49824a93054 Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/457840
* detachables: New code path for displaying detachable menusstabilize-9592.82.Bstabilize-9592.67.Bstabilize-9592.55.Bstabilize-9592.15.Brelease-R60-9592.BShelley Chen2017-05-254-0/+84
| | | | | | | | | | | BUG=b:35585623 BRANCH=None TEST=None CQ-DEPEND=CL:457863 Change-Id: Ib2f8d93334cecfd80169842994ea7561baf41378 Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/457839
* rowan: Add preMP keys to vbutil_what_keysPatrick Berny2017-05-251-0/+4
| | | | | | | | | | | | | | | BUG=none BRANCH=ToT TEST=ensure Rowan PreMP keys are correctly output by 'vbutil_what_keys chromeos_9547.0.0_rowan_recovery_canary- channel_premp.bin' Change-Id: I292425106a0b2d8e42f8a31de18edd0e63618842 Reviewed-on: https://chromium-review.googlesource.com/514984 Commit-Ready: Patrick Berny <pberny@chromium.org> Tested-by: Patrick Berny <pberny@chromium.org> Reviewed-by: Patrick Berny <pberny@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org>
* image_signing: ensure_secure_kernelparams.sh: use loopback devices for speedMike Frysinger2017-05-232-4/+64
| | | | | | | | | | | | | | | Rather than read out the whole kernel partition just to dump the kernel config, set the image up via a loopback device and read from there. BRANCH=None BUG=chromium:714598 TEST=signing images still works Change-Id: I3797a0e77315e8baf6f481f31c44b889ac6d098a Reviewed-on: https://chromium-review.googlesource.com/505475 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org>
* define callback APIs for auxiliary firmware update.Caveh Jalali2017-05-232-0/+49
| | | | | | | | | | | | | | | TEST="COV=1 make" passes depthcharge still compiles in combination with follow-up CLs, ps8751 firmware update succeeds. BUG=b:35586896 Change-Id: Ibadc41e56e4e25ee0aba5c83caa0e3596fb9ad20 Reviewed-on: https://chromium-review.googlesource.com/505259 Commit-Ready: Caveh Jalali <caveh@google.com> Tested-by: Caveh Jalali <caveh@google.com> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* vboot_ui_menu: Show Developer options on USB failureRizwan Qureshi2017-05-231-0/+2
| | | | | | | | | | | | | | | | | | | | | In the current implementation, if the boot from USB fails after pressing Ctrl-U or selecting "Boot USB Image", only a blank screen is shown instead of a menu. There is no option for the user to do anything else except wait for the timeout, after which boot from fixed disk is attempted. This does not seem like an intuitive boot flow. Hence, if the USB boot fails display the current menu, allowing the user to attempt something else. BUG=None BRANCH=None TEST= verfied that menu is displayed on USB boot failure from developer screen. Change-Id: Ide3967be7bba3d87c8a545a0f4ed52da44150fd0 Signed-off-by: Rizwan Qureshi <rizwan.qureshi@intel.com> Reviewed-on: https://chromium-review.googlesource.com/509671 Commit-Ready: Rizwan Qureshi <rizwan.qureshi@intel.corp-partner.google.com> Tested-by: Rizwan Qureshi <rizwan.qureshi@intel.corp-partner.google.com> Reviewed-by: Shelley Chen <shchen@chromium.org>
* image_signing: unify output helpersMike Frysinger2017-05-196-41/+47
| | | | | | | | | | | | | | | | | | | | We have `err_die` and `die` helpers that do the same thing, but some scripts just have to know which one to use based on their runtime. Just unify them as the more common `die` so all scripts can use it. Similarly, we provide info, warn, and error to dev scripts, but not to the runtime ones. Add small stubs in common_minimal.sh so the API is consistent. BRANCH=None BUG=chromium:718184 TEST=scripts still work Change-Id: Id44fb27900c37f4e357d20817f909e4534d1c5b3 Reviewed-on: https://chromium-review.googlesource.com/507990 Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: David Riley <davidriley@chromium.org> Commit-Queue: Mike Frysinger <vapier@chromium.org>
* image_signing: fix key insert logicMike Frysinger2017-05-161-2/+1
| | | | | | | | | | | | | | | | We don't want to override the common trap as the common sh files already have handlers installed to clean up files/mounts. Re-use those helpers to avoid leaking loopback mounts. BRANCH=None BUG=chromium:718184 TEST=signing images still works Change-Id: I749ce5075194356219fea51152154fdc5a2e3b99 Reviewed-on: https://chromium-review.googlesource.com/505575 Reviewed-by: Eric Caruso <ejcaruso@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Commit-Queue: Mike Frysinger <vapier@chromium.org>
* image_signing: strip_boot_from_image.sh: convert to info/error helpersstabilize-9554.BMike Frysinger2017-05-131-2/+2
| | | | | | | | | | | | | | This makes the output easier to follow when multiple scripts are being run. BRANCH=None BUG=chromium:714598 TEST=signing images still works Change-Id: I48edde260e1d1db88f65624c7ff46ad2ac1cc2f4 Reviewed-on: https://chromium-review.googlesource.com/498100 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: David Riley <davidriley@chromium.org>
* image_signing: resign_image.sh: drop unused scriptMike Frysinger2017-05-131-56/+0
| | | | | | | | | | | | | | | This script hasn't been executed by image_signing or the cros-signer code, and cs/ doesn't turn up any hits. Scrub it from the codebase. BRANCH=None BUG=chromium:714598 TEST=signing images still works Change-Id: Ief4256a8ceab753d5c1fd6d0f3d81609e11f62a9 Reviewed-on: https://chromium-review.googlesource.com/500329 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: David Riley <davidriley@chromium.org>
* image_signing: sign_official_build.sh: convert to info/error helpersMike Frysinger2017-05-131-45/+39
| | | | | | | | | | | | | | This makes the output easier to follow when multiple scripts are being run. BRANCH=None BUG=chromium:714598 TEST=signing images still works Change-Id: I4097fd58f349dc84c242dd12d6a94e12f387a1f0 Reviewed-on: https://chromium-review.googlesource.com/498232 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: David Riley <davidriley@chromium.org>
* image_signing: ensure_sane_lsb-release.sh: convert to info/error helpersMike Frysinger2017-05-131-9/+9
| | | | | | | | | | | | | | This makes the output easier to follow when multiple scripts are being run. BRANCH=None BUG=chromium:714598 TEST=signing images still works Change-Id: I7351e1ff63bb7e88e4449dd2718685fef7ec031d Reviewed-on: https://chromium-review.googlesource.com/498267 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: David Riley <davidriley@chromium.org>
* image_signing: ensure_no_nonrelease_files.sh: convert to info/error helpersMike Frysinger2017-05-121-3/+3
| | | | | | | | | | | | | | This makes the output easier to follow when multiple scripts are being run. BRANCH=None BUG=chromium:714598 TEST=signing images still works Change-Id: I666d3f5beee4b4e3e9903d546ef66917990a659e Reviewed-on: https://chromium-review.googlesource.com/498231 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: David Riley <davidriley@chromium.org>
* image_signing: make_dev_ssd.sh: convert to info/error helpersMike Frysinger2017-05-121-18/+18
| | | | | | | | | | | | | | This makes the output easier to follow when multiple scripts are being run. BRANCH=None BUG=chromium:714598 TEST=signing images still works Change-Id: I96e20f38b6a51ad4dc8064fa3fb3d4302c47888f Reviewed-on: https://chromium-review.googlesource.com/497302 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: David Riley <davidriley@chromium.org>
* image_signing: common.sh: prefix helper messages with $PROG by defaultMike Frysinger2017-05-111-3/+4
| | | | | | | | | | | | | | This makes the output easier to follow when multiple scripts are being run. BRANCH=None BUG=chromium:714598 TEST=signing images still works Change-Id: I072994dd07cf559a60e8a139eaeaf000cbbf72e3 Reviewed-on: https://chromium-review.googlesource.com/497301 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: David Riley <davidriley@chromium.org>
* image_signing: do not fail when chronos does not existMike Frysinger2017-05-111-1/+4
| | | | | | | | | | | | | | | If the device doesn't create a chronos user, don't throw errors. For some embedded systems, they don't need a chronos user. BRANCH=None BUG=chromium:714598 TEST=signing images still works Change-Id: I4604beae1e647e024a04583471b8a7d0d4f188fa Reviewed-on: https://chromium-review.googlesource.com/500027 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: David Riley <davidriley@chromium.org>
* image_signing: swap_rootfs.sh: drop unused scriptMike Frysinger2017-05-101-29/+0
| | | | | | | | | | | | | | | This script hasn't been executed by image_signing or the cros-signer code, and cs/ doesn't turn up any hits. Scrub it from the codebase. BRANCH=None BUG=chromium:714598 TEST=signing images still works Change-Id: Ic9cf90929f949a7f6b4e41e5b819d6f786c1c833 Reviewed-on: https://chromium-review.googlesource.com/500328 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: David Riley <davidriley@chromium.org>
* image_signing: output pubkey in DER formatMike Frysinger2017-05-101-1/+6
| | | | | | | | | | | | BRANCH=None BUG=chromium:718184 TEST=new imageloader works Change-Id: I430ed616954c820d3d1607eefd4f8e1c60863a8f Reviewed-on: https://chromium-review.googlesource.com/497914 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: Greg Kerr <kerrnel@chromium.org>
* vboot: Add multiboot kernel typeDuncan Laurie2017-05-082-4/+7
| | | | | | | | | | | | | | Add a kernel type for signing multiboot kernel images. BUG=b:38040849 BRANCH=none TEST=properly sign a multiboot kernel image and then verify the resulting image. Change-Id: If00e7c85244bc59853c305e42543f34c5fabf356 Signed-off-by: Duncan Laurie <dlaurie@google.com> Reviewed-on: https://chromium-review.googlesource.com/497933 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* futility: Verify linux kernel signatureDuncan Laurie2017-05-082-1/+16
| | | | | | | | | | | | | | | | | Verify the linux kernel signature on images before assuming they contain a linux kernel. This allows non-linux images on x86 to be left unmodified when signed. BUG=b:38040849 BRANCH=none TEST=sign a multiboot kernel image that remains unmodified, and ensure that x86 linux kernels are still updated properly and can still be booted. Change-Id: Ib7ba2d59ebe6413ab355aa7c0a9ee2e32c3ed98a Signed-off-by: Duncan Laurie <dlaurie@google.com> Reviewed-on: https://chromium-review.googlesource.com/497932 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* image_signing: set_channel: use new lsbval helperMike Frysinger2017-05-071-1/+1
| | | | | | | | | | | | | | Minor clean up to the logic. BUG=None TEST=`./set_channel recovery_image.bin stable-channel` changed the lsb-release file to stable BRANCH=None Change-Id: Idf12b643f88e373b528b50e269537b861052b448 Reviewed-on: https://chromium-review.googlesource.com/414225 Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: Hung-Te Lin <hungte@chromium.org>
* image_signing: fix signing of zip/crx filesMike Frysinger2017-05-041-10/+10
| | | | | | | | | | | | | | Restore the search logic for manifests in subdirs. BRANCH=None BUG=chromium:697645 TEST=signed adb/fastboot zip archives Change-Id: I07a417216ea463cb00d6ead7cd3b61d6e6fa507d Reviewed-on: https://chromium-review.googlesource.com/494207 Commit-Ready: Hsinyu Chao <hychao@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
* image_signing: change files sign_oci_container looks forstabilize-9517.Bfirmware-rowan-9516.BEric Caruso2017-04-261-16/+19
| | | | | | | | | | | | | | | | | Since we're packing containers in a format imageloader understands, we need to consume imageloader's manifest and produce a signature it knows to look for. BRANCH=ToT BUG=chromium:697645 TEST=package adb container, verify imageloader.sig.2 is present Change-Id: Ied9cdacf1d448a094c1b171bc2bf3b2ae54eb517 Reviewed-on: https://chromium-review.googlesource.com/457102 Commit-Ready: Eric Caruso <ejcaruso@chromium.org> Tested-by: Eric Caruso <ejcaruso@chromium.org> Reviewed-by: Stephen Barber <smbarber@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org>
* devkeys: switch container key from RSA to ECMike Frysinger2017-04-262-64/+7
| | | | | | | | | | | | | | | | | Created by doing: openssl ecparam -name prime256v1 -out prime256v1.pem openssl ecparam -genkey -noout -out cros-oci-container.pem -in prime256v1.pem openssl pkey -in cros-oci-container.pem -out cros-oci-container-pub.pem -pubout BUG=chromium:660209 TEST=`./sign_official_build.sh oci-container fastboot/ ../tests/devkeys` still works BRANCH=None Change-Id: I4171b2d9d9788cccf082d613b1de6e7ca9d0b005 Reviewed-on: https://chromium-review.googlesource.com/461418 Commit-Ready: Dylan Reid <dgreid@chromium.org> Tested-by: Dylan Reid <dgreid@chromium.org> Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
* Add missing arg to debug messagestabilize-9460.73.Bstabilize-9460.66.Bstabilize-9460.60.Bstabilize-9460.40.Bstabilize-9460.4.Bstabilize-9460.23.Brelease-R59-9460.BBill Richardson2017-04-121-1/+1
| | | | | | | | | | | BUG=none BRANCH=all TEST=none Change-Id: Ic7b318fbc05a2b25f4923d08381186c8b37a5999 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/475117 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* detachables: Define VbExDisplayMenu()stabilize-9430.Bstabilize-9428.BShelley Chen2017-03-292-0/+17
| | | | | | | | | | | | | Create new callback for drawing detachable firmware menus BUG=b:35585623 BRANCH=None TEST=None Change-Id: Ief207f6119f00151e2d480549aaac3a8755cb1b4 Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/457838 Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
* Preserve compress method when re-sign Android imageVictor Hsieh2017-03-281-1/+3
| | | | | | | | | | | | | TEST=sign_android_image.sh rootfs /path/to/tests/devkeys/android # unsquash -s still shows gzip (previous script always use lzo) BUG=chromium:705247 BRANCH=none Change-Id: If95686d293123a069ce36bc53cbea3a08aa3e7ab Reviewed-on: https://chromium-review.googlesource.com/461205 Commit-Ready: Victor Hsieh <victorhsieh@chromium.org> Tested-by: Victor Hsieh <victorhsieh@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org>
* vboot_reference: Add support for 3072-bit exponent 3 keysNicolas Boichat2017-03-1621-3/+102
| | | | | | | | | | | | | | | | This also adds the required tests (keys, testcases), and some additional tests in vb2_rsa_utility_tests.c that were not added when 2048-bit exponent 3 support was added. BRANCH=none BUG=chromium:684354 TEST=make runtests Change-Id: I56d22302c2254ef500b9d2d290a79d8c8bc39942 Reviewed-on: https://chromium-review.googlesource.com/449060 Commit-Ready: Nicolas Boichat <drinkcat@chromium.org> Tested-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* vbutil_keyblock: Force checking the signature if signpubkey is providedNicolas Boichat2017-03-161-3/+10
| | | | | | | | | | | | | | | | | | | Previously, futility vbutil_keyblock --unpack would just ignore the error if the keyblock was not signed (but a signing public key was provided). This fix would have caught the regression introduced by 939cc3a "futility: Use only vboot 2.0 APIs for keyblocks" BUG=chromium:611535 BRANCH=none TEST=make runtests on m/master => fails TEST=make runtests with CL:448399 => succeeds Change-Id: Id7f0a248863aae2f41c2fa46fbb8a37848e707a9 Reviewed-on: https://chromium-review.googlesource.com/449058 Commit-Ready: Nicolas Boichat <drinkcat@chromium.org> Tested-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* host_keyblock: Fix vb2_create_keyblock_externalNicolas Boichat2017-03-161-1/+2
| | | | | | | | | | | | | | | | 939cc3a "futility: Use only vboot 2.0 APIs for keyblocks" introduced 2 subtle bugs, and we could still pass unit tests. Until we start adding more signing algorithms and sig_data_size != 0. BUG=chromium:611535 BRANCH=none TEST=make runtests Change-Id: Ief95e5ab773185b59276cf06d1efaa29f1212466 Reviewed-on: https://chromium-review.googlesource.com/448399 Commit-Ready: Nicolas Boichat <drinkcat@chromium.org> Tested-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* poppy: center detachable menu textstabilize-M58-9334.41.0.Bstabilize-9334.58.Brelease-R58-9334.BShelley Chen2017-03-021-2/+6
| | | | | | | | | | | | BUG=b:35585623 BRANCH=None TEST=reboot and make sure menu is centered in fw screen CQ-DEPEND=CL:447818 Change-Id: I7ce5063adab978338af18ad2befe65107fdea21f Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/447838 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* poppy: define VbExDisplayGetDimension()Shelley Chen2017-03-022-0/+10
| | | | | | | | | | | | | callback to get rows/cols of display BUG=b:35585623 BRANCH=None TEST=make sure code compiles Change-Id: I276975b2f0eecceb66a30ceaa449ab76a440026d Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/447837 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* poppy: Disable arrow keys for language switchShelley Chen2017-03-021-2/+0
| | | | | | | | | | | | | | | | Previously, could use arrow keys to change language in fw screen. Disabling this in detachable menu because will be using menu to switch languages. BUG=b:35585623 BRANCH=None TEST=reboot and try to use right/left arrows. Make sure they don't do anything. Change-Id: Ic720ea4ec9e6b7ae1676fdf60d27e2c74e48f736 Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/444945 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* poppy: use return key for selectionShelley Chen2017-03-021-9/+2
| | | | | | | | | | | | | | Replacing right arrow key with return for selection when keyboard is available because it's more obvious. BUG=b:35585623 BRANCH=None TEST=reboot and make sure return selects menu item. Change-Id: I6b2fbd8cddcd98c49638a6b9d79b47da1ca6545f Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/444944 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* poppy: reinstating fw ctrl functionsShelley Chen2017-03-021-0/+43
| | | | | | | | | | | | | | | Putting ctrl+D, ctrl+U, ctrl+L shortcuts back in from the fw screens. BUG=b:35585623 BRANCH=None TEST=reboot and try ctrl+D, etc. in fw screen to make sure that they have desired effects. Change-Id: I5ca555658eddabeeea6a2f64794e6839f35d75f7 Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/443349 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* vboot_ui_menu: getting rid of explicit function printShelley Chen2017-03-021-50/+39
| | | | | | | | | | | | | | | Since we're now using VB2_DEBUG, no need to explicitly print out __func__ anymore. BUG=b:35585623 BRANCH=None TEST=reboot and make sure still see serial output in AP console. Change-Id: Ica524d4e50c61681e466815ffb93d33ceee215aa Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/443348 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* poppy: replacing dev warn & rec screens with baseShelley Chen2017-03-021-9/+9
| | | | | | | | | | | | | | | Using new base screen only and leaving center blank for displaying the detachable menu items. BUG=b:35585623 BRANCH=None TEST=reboot and make sure icons don't show up in FW screens. Change-Id: I705dac43441f386ebceb58533fa0e336541fcd3c Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/442692 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* poppy: defining base screen enum itemShelley Chen2017-03-011-0/+2
| | | | | | | | | | | BUG=b:35585623 BRANCH=None TEST=None Change-Id: I2bb7f3f3cb8fd37f8a7c2253e1ea0cb322d01c9c Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/442691 Reviewed-by: Randall Spangler <rspangler@chromium.org>