summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 2lib/2auxfw_sync: Handle VB2_REQUEST* error codesfirmware-trogdor-13577.BKarthikeyan Ramasubramanian2021-12-211-35/+2
| | | | | | | | | | | | | | | | | | | | | | | In normal/secure mode, display is not always available. Hence aux firmware updates request reboot to initialize the display so that slow firmware update screen can be displayed. Since this error is not handled, the concerned firmware slot is marked as failed. This leads to devices in the field not picking FW updates and falling back to old FW slot. Handle VB2_REQUEST* error codes, so that the device reboots to initialize the display. BUG=b:210127173 BRANCH=dedede, volteer, zork, trogdor, keeby TEST=Build and boot to OS in Drawlat. Ensure that the AP + EC + ME + PD FW updates are applied and the system was able to boot to OS successfully - https://paste.googleplex.com/4966135716904960. Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com> Change-Id: I2b7bdd830a1141ee59e25204bf4f77adba58b679 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/3347669 Reviewed-by: Karthikeyan Ramasubramanian <kramasub@chromium.org> Commit-Queue: Julius Werner <jwerner@chromium.org> Tested-by: Julius Werner <jwerner@chromium.org>
* vboot/ui: Change root screen if DEV_DISABLE_BOOT is setYu-Ping Wu2021-05-283-11/+22
| | | | | | | | | | | | | | | | | | | | | Change UI root screen to DEVELOPER_TO_NORM if DEV_DISABLE_BOOT is set in FWMP, and disable all dev-mode shortcuts except '\t'. This ensures DEVELOPER_TO_NORM and VB2_SCREEN_DEBUG_INFO are the only two screens accessible from the UI. Also hide the "Cancel" menu item in DEVELOPER_TO_NORM. BUG=b:159579189, chromium:1181484, b:188900679 TEST=make runtests TEST=emerge-asurada depthcharge BRANCH=none Change-Id: Ifedb53ae2eb968b1118340aef30cda00b7925f03 Signed-off-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2716747 Reviewed-by: Joel Kitching <kitching@chromium.org> Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2924247
* minidiag: Update strings for minidiag v1.0Chung-Sheng Wu2021-04-191-1/+1
| | | | | | | | | | | | | | | | | BRANCH=dedede,volteer,trogdor,zork BUG=b:182338095 TEST=none Cq-Depend: chromium:2818376 Signed-off-by: Chung-Sheng Wu <chungsheng@google.com> Change-Id: I865b28d8a8a6e1f3924ce94fb38b6c7799a797dd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2789115 Tested-by: Chung-Sheng Wu <chungsheng@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2818377 Commit-Queue: Meng-Huan Yu <menghuan@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
* Minidiag: Enable minidiag by defaultMeng-Huan Yu2021-02-052-4/+4
| | | | | | | | | | | | | | | | | | | This CL enabled the pre-boot diagolostic tools entry in recovery mode. BRANCH=none BUG=b:176947486 TEST=CQ TEST=FEATURES=test P2_TEST_FILTER='*' emerge-zork vboot_reference TEST=manually build, flash FW to device, and confirm minidiag works Signed-off-by: Meng-Huan Yu <menghuan@chromium.org> Change-Id: I8500cbaaa4e8d0f1aa668d56d38095ecdcf50aaf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2617391 Reviewed-by: Hung-Te Lin <hungte@chromium.org> (cherry picked from commit 6f6efdc6fa38ed3bcacfa9e152f415d50ee8bad0) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2677612 Reviewed-by: Julius Werner <jwerner@chromium.org> Commit-Queue: Julius Werner <jwerner@chromium.org>
* Minidiag: Commit NVRAM immediately right after cleaning diag requestMeng-Huan Yu2021-02-051-0/+6
| | | | | | | | | | | | | | | | | | | | | Clean up the diag request flag to avoid potential reboot loop if somehow a forced reboot occurs. BRANCH=puff,zork,volteer,trogdor,dedede BUG=b:177303714 TEST=CQ TEST=FEATURES=test P2_TEST_FILTER='*' emerge-zork vboot_reference TEST=boot to minidiag and then do hardware reset, then expect boot to OS instead of boot to minidiag again. Signed-off-by: Meng-Huan Yu <menghuan@chromium.org> Change-Id: I24815d512ca42b78dc42cafaebc666e6a53db793 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2624110 Reviewed-by: Joel Kitching <kitching@chromium.org> (cherry picked from commit 5046e96cfa81350e53ffc4ac0f87e1b5f9c6eee1) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2677613 Reviewed-by: Julius Werner <jwerner@chromium.org> Commit-Queue: Julius Werner <jwerner@chromium.org>
* minidiag: Fix button initialization errors in memory testsHsuan Ting Chen2020-12-171-2/+20
| | | | | | | | | | | | | | | | | | | Call log_page_init(ui) to initialize button states in memory tests. Add TODO comments for splitting out log_page_update(). BUG=b:173772273 BRANCH=zork TEST=Build locally Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: Icc5504bfcbfefc264a01289cc7988e97064bc8fd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2552308 Reviewed-by: Meng-Huan Yu <menghuan@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2565052 Tested-by: Chung-Sheng Wu <chungsheng@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Commit-Queue: Julius Werner <jwerner@chromium.org>
* minidiag/ui: Prevent calling update action if there were no updatesHsuan Ting Chen2020-12-173-5/+15
| | | | | | | | | | | | | | | | | | | | | Add a return code `VB2_ERROR_EX_DIAG_TEST_UPDATED` to determine if updating needed. BUG=b:168776970 BRANCH=none TEST=Build locally, boot recovery, select 'run diagnostics', enter memory test (quick) screen, and observe that the delay reduces while pressing keyboard Cq-Depend: chromium:2423699 Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: I7606911bee7257e8eed4ec35d197efaa57b72e13 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2424370 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2565051 Tested-by: Chung-Sheng Wu <chungsheng@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Commit-Queue: Julius Werner <jwerner@chromium.org>
* minidiag/ui: Prevent calling update action if memory test is finishedHsuan Ting Chen2020-12-172-0/+9
| | | | | | | | | | | | | | | | | | | Skip calling diagnostics_memory_update_screen() action if memory test is finished to reduce delays in memory diagnostics screens. BUG=b:168776970, b:171852478 BRANCH=none TEST=Build locally, boot recovery, select 'run diagnostics', enter memory test (quick) screen, wait until test is finished, and observe that the delay reduces while pressing keyboard Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: I4f8dbadc68989112bce418119ff7405ec150a7df Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2423089 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2565050 Tested-by: Chung-Sheng Wu <chungsheng@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Commit-Queue: Julius Werner <jwerner@chromium.org>
* vboot/ui: Remove extra delay for long iteration timeHsuan Ting Chen2020-12-022-1/+91
| | | | | | | | | | | | | | | | | If an iteration takes longer than KEY_DELAY_MS, no extra delay. Otherwise, delay until the iteration time reaches KEY_DELAY_MS. BUG=b:168776970 BRANCH=none TEST=Build locally Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: Ia78dbe1cc87d08c02f99f4fc9269929c12c18b77 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2424373 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2569276 Reviewed-by: Shelley Chen <shchen@chromium.org> Commit-Queue: Shelley Chen <shchen@chromium.org> Tested-by: Shelley Chen <shchen@chromium.org>
* vboot/ui/tests: Remove unnecessary aborting delay checkHsuan Ting Chen2020-12-021-39/+27
| | | | | | | | | | | | | | | | | | | | | | | - Do not check if delay is aborted every time since we already have an individual test item. - Do not save the last return value of vb2ex_mtime() to allow us to use vb2ex_mtime() elsewhere. - Use fuzzy match for `delay finished` test items. BUG=b:156448738 BRANCH=none TEST=CC=x86_64-pc-linux-gnu-clang; make clean && make runtests Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: Ic211955637c67dc35ffd4c12194a8ccb77e1bf9c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2508104 Reviewed-by: Joel Kitching <kitching@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2569275 Reviewed-by: Shelley Chen <shchen@chromium.org> Commit-Queue: Shelley Chen <shchen@chromium.org> Tested-by: Shelley Chen <shchen@chromium.org>
* vboot/ui/tests: Add time-related constants in 2ui_private.hHsuan Ting Chen2020-12-024-22/+28
| | | | | | | | | | | | | | | | | | | | | | | | Add several constants in 2ui_private.h for testing: - KEY_DELAY_MS - DEV_DELAY_SHORT_MS - DEV_DELAY_NORMAL_MS - DEV_DELAY_BEEP1_MS - DEV_DELAY_BEEP2_MS BUG=b:156448738 BRANCH=none TEST=CC=x86_64-pc-linux-gnu-clang; make clean && make runtests Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: I7349d5214a90699fda67135329d7a6b93022bb27 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2513418 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-by: Joel Kitching <kitching@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2569274 Reviewed-by: Shelley Chen <shchen@chromium.org> Commit-Queue: Shelley Chen <shchen@chromium.org> Tested-by: Shelley Chen <shchen@chromium.org>
* vboot/ui: Suffix "_ms" to time-related variablesHsuan Ting Chen2020-12-023-30/+30
| | | | | | | | | | | | | | | | | | | | | | | | For test/vb2_ui_tests.c: - Rename mock_get_timer_last to mock_get_timer_last_ms. - Rename mock_time to mock_time_ms. - Rename mock_time_start to mock_time_start_ms. For 2lib/2ui.c and 2lib/2ui_screen.c: - Rename start_time to start_time_ms in struct vb2_ui_context. - Rename elapsed to elapsed_ms in developer_mode_action(). BUG=b:156448738 BRANCH=none TEST=CC=x86_64-pc-linux-gnu-clang; make clean && make runtests Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: Icabe04003f0dc95f41c9ed8b8e2292f1f64e86bc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2513417 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2569273 Reviewed-by: Shelley Chen <shchen@chromium.org> Commit-Queue: Shelley Chen <shchen@chromium.org> Tested-by: Shelley Chen <shchen@chromium.org>
* vboot/ui: Pass screen and locale_id to vb2ex_prepare_log_screen()Yu-Ping Wu2020-12-024-9/+20
| | | | | | | | | | | | | | | | | | | | | | | To support multi-line title for log screens, we need to support different size of log box in each screen. Therefore, pass the screen and locale information to vb2ex_prepare_log_screen() so that the number of lines per page can be determined. BUG=b:165187866 TEST=emerge-asurada depthcharge BRANCH=none Cq-Depend: chromium:2522156 Change-Id: I652d6261ed559a948e7bd578da3ec81d54374039 Signed-off-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2522416 Reviewed-by: Hsuan Ting Chen <roccochen@chromium.org> Reviewed-by: Joel Kitching <kitching@chromium.org> (cherry picked from commit abcd6d24548480c1b3aeb5998c15b8548cea3b76) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2568502 Reviewed-by: Shelley Chen <shchen@chromium.org> Tested-by: Shelley Chen <shchen@chromium.org> Commit-Queue: Shelley Chen <shchen@chromium.org>
* common: log loopback detachesGeorge Engelbrecht2020-11-031-0/+1
| | | | | | | | | | | | | | We want to find the culprit loopback device which isn't detatching on crbug.com/1141907. We might as well log our cleanup actions anyway, and this will allow us to see the last loopback processed in production. BUG=chromium:1141907 TEST=just a log message BRANCH=None Signed-off-by: George Engelbrecht <engeg@google.com> Change-Id: I126efceae4f67993069675c23f6c4af61c7e5667 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2514561 Reviewed-by: LaMont Jones <lamontjones@chromium.org>
* common: save the existing return value on cleanupGeorge Engelbrecht2020-11-031-0/+3
| | | | | | | | | | | | | | Currently this trap initiated function will not save the orginal return value of the script. Save it and return it on exit. BUG=chromium:1141907 TEST=unittest and manually on a signer BRANCH=None Signed-off-by: George Engelbrecht <engeg@google.com> Change-Id: Icd807f4d153e4bcc1d309fbcea43c2b3344771ca Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2514560 Reviewed-by: Sean McAllister <smcallis@google.com> Reviewed-by: LaMont Jones <lamontjones@chromium.org>
* cleanup_minimal: remove duplicate trap for temps and mountsGeorge Engelbrecht2020-11-031-1/+0
| | | | | | | | | | | | | | BUG=chromium:1141907 TEST=unit tests and manual signing run Signed-off-by: George Engelbrecht <engeg@google.com> BRANCH=none Change-Id: I0316f464e138dea9e77b2554a3b31250e8b92c07 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2514559 Reviewed-by: Sean McAllister <smcallis@google.com> Reviewed-by: LaMont Jones <lamontjones@chromium.org> Commit-Queue: George Engelbrecht <engeg@google.com> Tested-by: George Engelbrecht <engeg@google.com>
* common.sh: adapt to get clean shellcheckGeorge Engelbrecht2020-11-032-28/+42
| | | | | | | | | | | | | | BUG=chromium:1141907 TEST=unit tests and manual signing run Signed-off-by: George Engelbrecht <engeg@google.com> BRANCH=none Change-Id: I39b133ca69e717576140b418fc59dd167f068d59 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2514558 Reviewed-by: Sean McAllister <smcallis@google.com> Reviewed-by: LaMont Jones <lamontjones@chromium.org> Commit-Queue: George Engelbrecht <engeg@google.com> Tested-by: George Engelbrecht <engeg@google.com>
* common.sh: don't let eval terminate cleanupGeorge Engelbrecht2020-10-311-1/+1
| | | | | | | | | | | | | | | | | | | Eval will terminate the shell on non-zero error code. "POSIX says that an error in a special built-in utility (such as eval) should cause the non-interactive shell to terminate" This is the case and is causing cleanup to terminate android signing with a non-zero error when it is clear the intent (given the set +e) is that we should be best effort here. BUG=chromium:1141907 TEST=unittest and manually on a signer Change-Id: Ie6374b292c7982371d549b919b44328ea71a09dd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2513228 Reviewed-by: George Engelbrecht <engeg@google.com> Tested-by: George Engelbrecht <engeg@google.com>
* sign_android: don't use xattrs from unsquashfsGeorge Engelbrecht2020-10-301-2/+2
| | | | | | | | | | | | | | | | | | | | | We've moved to applying a file based set of selinux policies instead of taking the ones that were snagged from the image. Remove the policy attributes and let unsquash do whatever it would do by default. See https://chat.google.com/room/AAAA45hbdCQ/jkXYe7jMEDk. BUG=chromium:1141907 TEST=unittests Change-Id: I0a976fb216e0a07c00c4bb2fb68df6fa1ea00d79 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2511121 Reviewed-by: Yury Khmel <khmel@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Yury Khmel <khmel@google.com> Commit-Queue: George Engelbrecht <engeg@google.com> Commit-Queue: Yury Khmel <khmel@google.com> Tested-by: George Engelbrecht <engeg@google.com> Auto-Submit: George Engelbrecht <engeg@google.com>
* sign_official_build: dump more info in resign_android_image_if_existsstabilize-rust-13562.BBrian Norris2020-10-281-1/+10
| | | | | | | | | | | | | | | We're getting silent errors in here somewhere. BRANCH=none BUG=chromium:1141907 TEST=none Change-Id: I9af0a3ea1696920fe67c915660f82a68c1bddf34 Signed-off-by: Brian Norris <briannorris@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2504358 Reviewed-by: LaMont Jones <lamontjones@chromium.org> Commit-Queue: LaMont Jones <lamontjones@chromium.org> Tested-by: LaMont Jones <lamontjones@chromium.org>
* crossystem: support clear_tpm_owner_request on TPM2.0 simulatorYi Chou2020-10-282-3/+38
| | | | | | | | | | | | | | | | | | | | | | | | | This CL would give VM boards the ability to hard reset TPM. When clearing TPM ownership on real devices, there are two things would happen: 1. TPM reset all of its NVRAM data. 2. mount-encrypted can't decrypt old encrypted partition. The TPM2.0 simulator put its NV space at "/var/lib/trunks/NVChip". And "/var/lib" is under encrypted partition. Remove the mount-encrypted key would cause mount-encrypted lost the encrypted partition on next boot, and it would simply achieve those two targets. BUG=b:170785530 BRANCH=none TEST=crossystem clear_tpm_owner_request=1 Cq-Depend: chromium:2501904 Signed-off-by: Yi Chou <yich@google.com> Change-Id: Ifeff0cf03bf76706849905816d22024f3d1b952f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2470577 Reviewed-by: Joel Kitching <kitching@chromium.org>
* futility: update: load quirks from firmware image CBFS filestabilize-rust-13555.BHung-Te Lin2020-10-164-7/+75
| | | | | | | | | | | | | | | | | | | | The firmware updater now looks at CBFS 'FW_MAIN_A' (RW A) and if a text file 'updater_quirks' is found, the contents will be fetched to setup default quirks. This helps sharing same customization across multiple firmware images (for different models) shared by same unibuild OS image. Without that, we have to maintain a large list of hard-coded model names in firmware updater source. BRANCH=none BUG=b:169284414 TEST=make runtests Signed-off-by: Hung-Te Lin <hungte@chromium.org> Change-Id: I938bffe9f16bc3adee0dc3efb6976efe581c6d8c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2426093 Reviewed-by: Karthikeyan Ramasubramanian <kramasub@chromium.org>
* lib: gpt_misc: Avoid leaving GPT entries data uninitializedJulius Werner2020-10-161-0/+2
| | | | | | | | | | | | | | | If we fail reading a GPT header, we memset() the respective buffer to 0 to avoid operating on uninitialized bytes. We should do the same for the GPT entries array. BRANCH=None BUG=chromium:1137521 TEST=make runtests Signed-off-by: Julius Werner <jwerner@chromium.org> Change-Id: I1019eaf5e9ab05cd9953a15874f4931766952d88 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2469601 Reviewed-by: Joel Kitching <kitching@chromium.org>
* futility/updater: Add quirk to preserve management engineKarthikeyan Ramasubramanian2020-10-153-0/+47
| | | | | | | | | | | | | | | | | | | | | | | | | In recent Intel platforms, updating Management Engine (ME) while SoC is in S0 state is an unsupported use-case. To work-around this issue for the devices that are in development, specifically during firmware update, this quirk is added to preserve the ME region. In the subsequent boot, ME region is updated as part of boot firmware update upstart script. BUG=b:165590952 BRANCH=None TEST=With the quirk enabled, ensured that the ME is preserved under the following scenario: chromeos-firmwareupdate --mode=autoupdate chromeos-firmwareupdate --mode=recovery futility update --mode=autoupdate -a /usr/sbin/chromeos-firmwareupdate futility update --mode=recovery -a /usr/sbin/chromeos-firmwareupdate In other scenarios, ME region is not preserved. Change-Id: I81a52d11d1fb363b7e07ef3439b927449456b28a Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2465286 Tested-by: Karthikeyan Ramasubramanian <kramasub@chromium.org> Reviewed-by: Hung-Te Lin <hungte@chromium.org> Commit-Queue: Karthikeyan Ramasubramanian <kramasub@chromium.org>
* futility: update: support multi-line quirksHung-Te Lin2020-10-152-2/+11
| | | | | | | | | | | | | | | To support loading quirks from external files, we want to skip tab (\t) and new line characters (\n, \r). BRANCH=none BUG=b:169284414 TEST=make runtests Change-Id: If314d6cf36907837ce9c36b73337976ee0c6fad1 Signed-off-by: Hung-Te Lin <hungte@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2467305 Reviewed-by: Karthikeyan Ramasubramanian <kramasub@chromium.org> Commit-Queue: Karthikeyan Ramasubramanian <kramasub@chromium.org>
* signer: syncronize image packing to what we have in build image phase.Yury Khmel2020-10-141-26/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This follows steps we have in build image phase to have parity in image packing. * Discard reapply selinex context. This looks not needed once re-signing should not change selinux context. Instead we could do similar to build image, pass file context to mksquashfs * Apply mksquashfs params based on image type, container/vm. This fixes proper block size and image compression algorithm * Remove old image before packing to prevent mksquashfs merge attempt BUG=b:170400225 BUG=b:170220295 BUG=b:170219920 BRANCH=none TEST=locally signed vm (kohaku) and container (hana): arc.Optin*, arc.Preopt*. Also checked final image size. With this CL it is reduced to 150Mb(vm) and very close to original image size (delta is less than 0.1%) Signed-off-by: Yury Khmel <khmel@chromium.org> Change-Id: I7037bea68fc2969345a8fabc3c6a9b9b690f02d1 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2462005 Reviewed-by: Yusuke Sato <yusukes@chromium.org> Reviewed-by: George Engelbrecht <engeg@google.com> Tested-by: Yury Khmel <khmel@google.com> Auto-Submit: Yury Khmel <khmel@google.com> Commit-Queue: Yury Khmel <khmel@google.com>
* crossystem: remove mosys nvstorage implementationJack Rosenthal2020-10-143-88/+0
| | | | | | | | | | | | | | As promised, it's October 2020, nyan_kitty went AUE with M85, and M86 just got pushed stable. That means we can now delete this code :) BUG=chromium:1090803 BRANCH=none TEST=compiles Signed-off-by: Jack Rosenthal <jrosenth@chromium.org> Change-Id: I5a15ef1e1ad02885af135d8e42d02d492bdd6c05 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2469604 Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
* vboot/ui: Split disabled_item_mask into two masks for log screenHsuan Ting Chen2020-10-147-233/+435
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add three macros in 2api.h for bitmask operations: - VB2_SET_BIT(mask, index) - VB2_CLR_BIT(mask, index) - VB2_GET_BIT(mask, index) These macros will be used in corresponding depthcharge CLs. Split disabled_item_mask into: - disabled_item_mask: Disabled style, but still visible and selectable. - hidden_item_mask: Not visible. Ignore selecting on disabled menu items. Set appropriate disabled_item_mask for page up/down buttons in log screen. Revise tests of hidden_item_mask and add unit tests of disabled_item_mask. BUG=b:163301076, b:146399181 BRANCH=none TEST=CC=x86_64-pc-linux-gnu-clang; make clean && make runtests TEST=CC=x86_64-pc-linux-gnu-clang; DETACHABLE=1; make clean && make runtests TEST=CC=x86_64-pc-linux-gnu-clang; PHYSICAL_PRESENCE_KEYBOARD=1; make clean && make runtests TEST=CC=x86_64-pc-linux-gnu-clang; DIAGNOSTIC_UI=1; make clean && make runtests TEST=Build locally, navigate to debug info screen with <TAB>, select page up or page down, and observe that nothing happens. Cq-Depend: chromium:2432168 Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: I1607af53f6e2b5c1cde568cb24606314051d2380 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2426154 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Commit-Queue: Yu-Ping Wu <yupingso@chromium.org>
* vboot/ui/tests: Fix ignoring vb2ex_display_ui calls in unit testsstabilize-13532.BHsuan Ting Chen2020-10-122-8/+21
| | | | | | | | | | | | | | | | | | | | | | | | | Save parameters `timer_disabled` and `error_code` in mocked vb2ex_displayed_ui calls to check whether the consecutive calls are duplicate or not. The unit tests of these parameters will be added in following CLs. BRANCH=none BUG=b:146399181, b:156448738 TEST=CC=x86_64-pc-linux-gnu-clang; make clean && make runtests TEST=CC=x86_64-pc-linux-gnu-clang; DETACHABLE=1; make clean && make runtests TEST=CC=x86_64-pc-linux-gnu-clang; PHYSICAL_PRESENCE_KEYBOARD=1; make clean && make runtests TEST=FEATURES=test PKGDIR=/build/puff/test-packages /mnt/host/source/chromite/bin/parallel_emerge --sysroot=/build/puff --jobs=32 vboot_reference Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: I2b7c9b6b05d2427e938394ff9d0769fbde81f773 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2449310 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
* vboot/ui/tests: Fix struct compare error in unit testsHsuan Ting Chen2020-10-122-2/+2
| | | | | | | | | | | | | | | | | Use packed structures to avoid unexpected error about padding. BUG=b:156448738, b:170186754 BRANCH=none TEST=CC=x86_64-pc-linux-gnu-clang; make clean && make runtests TEST=FEATURES=test PKGDIR=/build/puff/test-packages /mnt/host/source/chromite/bin/parallel_emerge --sysroot=/build/puff --jobs=32 vboot_reference Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: Ibdcffe81d92db2880c53282a313ffa678af7d43d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2454911 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
* signer: resign networkstack APKs with correct keystabilize-13525.Bfirmware-volteer-13521.BVictor Hsieh2020-10-091-1/+1
| | | | | | | | | | | | BUG=b:170156734 BRANCH=none TEST=sign rvc-arc image Signed-off-by: Victor HSieh <victorhsieh@chromium.org> Change-Id: I99fc4eb19be6cc785297e223a6603c1d777c5c77 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2458789 Reviewed-by: Yury Khmel <khmel@chromium.org> Reviewed-by: George Engelbrecht <engeg@google.com>
* Deal with Android's new networkstack keyVictor Hsieh2020-10-083-6/+15
| | | | | | | | | | | BUG=b:170156734 TEST=run signing script locally BRANCH=None Signed-off-by: Victor HSieh <victorhsieh@chromium.org> Change-Id: I4f045729241b479b56fef5687b721b5b59c2eed8 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2450551 Reviewed-by: George Engelbrecht <engeg@google.com>
* arc: Fix RVC signed image does not boot.factory-test-13517.BYury Khmel2020-10-061-9/+37
| | | | | | | | | | | | | | | | | | This supports new set of certificates plat_mac_permissions.xml and adds handling media and network_stack certificates. BRANCH=none BUG=b:169458218 TEST=Sign test image from goldeneye per instructions in bug, deploy it to device (kohaku) pass tast.arc.Optin.vm test Signed-off-by: Yury Khmel <khmel@chromium.org> Change-Id: I61c4e327eaa605ed60c0c80b3598c0f4fb6e5f5f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2447430 Tested-by: Yury Khmel <khmel@google.com> Auto-Submit: Yury Khmel <khmel@google.com> Reviewed-by: George Engelbrecht <engeg@google.com> Commit-Queue: Yury Khmel <khmel@google.com>
* lib21: always append '\0' in vb2_readfilestabilize-rust-13514.BHung-Te Lin2020-10-052-1/+3
| | | | | | | | | | | | | | | For utilities reading text file, it is easier to process as ASCIIZ input if vb2_readfile can always return a buffer ends with '\0' so we don't need to pass and check the size. BUG=None TEST=make clean && make runtests BRANCH=None Signed-off-by: Hung-Te Lin <hungte@chromium.org> Change-Id: Ib6294969fb325b9b7899e6295fb1817ad91a9952 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2426092 Reviewed-by: Joel Kitching <kitching@chromium.org>
* vboot/ui: fix some rogue spacingJoel Kitching2020-10-053-7/+7
| | | | | | | | | | | | | BUG=b:146399181 TEST=make clean && make runtests BRANCH=none Signed-off-by: Joel Kitching <kitching@google.com> Change-Id: I884ec94adc762549ad565fe0796d3db625039f64 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2428563 Tested-by: Joel Kitching <kitching@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Commit-Queue: Joel Kitching <kitching@chromium.org>
* vboot/ui: introduce casts around vb2_menu_item helpersJoel Kitching2020-10-051-10/+10
| | | | | | | | | | | | | | | | Follow same style as MENU_ITEMS macro for clarity and safety. BUG=b:146399181 TEST=make clean && make runtests BRANCH=none Signed-off-by: Joel Kitching <kitching@google.com> Change-Id: I9aac27dca763c98fd5ca7e35219163d990c73ab0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2428202 Tested-by: Joel Kitching <kitching@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-by: Hsuan Ting Chen <roccochen@chromium.org> Commit-Queue: Joel Kitching <kitching@chromium.org>
* vboot/ui: stop including 2secdata.h in 2ui.cJoel Kitching2020-10-051-1/+0
| | | | | | | | | | | | | | | | Header not needed. BUG=b:146399181 TEST=make clean && make runtests BRANCH=none Signed-off-by: Joel Kitching <kitching@google.com> Change-Id: I84585909db16ce71cf4ba1beba1f6924c9e71457 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2428201 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-by: Hsuan Ting Chen <roccochen@chromium.org> Tested-by: Joel Kitching <kitching@chromium.org> Commit-Queue: Joel Kitching <kitching@chromium.org>
* vboot2: Add support for modexp accelerationKangheui Won2020-10-034-2/+58
| | | | | | | | | | | | | | | | | Add vb2ex_hwcrypto_modexp support to accelerate only calculation part of RSA and we can handle the rest. Instead of relying on opaque hardware accleration for all RSA verification process, this will enable us to maintain our security level while enhancing overall speed of verification. BRANCH=zork BUG=b:169157796 TEST=make runtests Signed-off-by: Kangheui Won <khwon@chromium.org> Change-Id: I6f9fc919c4215964158815a58a9f1b338c2a76a4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2444809 Reviewed-by: Julius Werner <jwerner@chromium.org>
* futility: updater: print flashrom execution logs on read failurestabilize-13505.1.BHung-Te Lin2020-09-261-0/+11
| | | | | | | | | | | | | | | | | | To prevent flooding AU logs, we don't want flashrom to print verbose logs especially when reading system SPI flash. However, if anything goes wrong it will be very helpful to have all the messages logged. With this patch, we will try reading system flash again with max verbosity. BUG=chromium:943262,b:169026171 TEST=make futil; tests/futility/run_test_scripts.sh $(pwd)/build/futility BRANCH=None Change-Id: I5469182f2628855e65546bef3abf8791261aabca Signed-off-by: Hung-Te Lin <hungte@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/1545598 Commit-Queue: Edward O'Callaghan <quasisec@chromium.org> Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
* vboot/ui: Always beep when error dialog is shownHsuan Ting Chen2020-09-242-11/+4
| | | | | | | | | | | | | | | Setting error_code always implies we need to beep. BUG=b:146399181 TEST=Build locally BRANCH=zork Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: I65d790a63739f36dc1db8e22321adbff26d70893 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2397017 Commit-Queue: Yu-Ping Wu <yupingso@chromium.org> Reviewed-by: Joel Kitching <kitching@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
* firmware/2lib: Add error message for ctrl-U when usb boot is not enabledShelley Chen2020-09-242-0/+3
| | | | | | | | | | | | | | | | | | | | Currently, we only have a beep when the user presses ctrl-u. Adding an error message to clarify what the error is. BUG=b:164944674 BRANCH=puff, zork TEST=boot into developer mode make sure "boot from external disk" doesn't appear press ctrl+U and make sure dialog box with error appears Cq-Depend: chromium:2359765 Signed-off-by: Shelley Chen <shchen@google.com> Change-Id: Id8fad79802cb61883758e8c7561163cc17fb0f87 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2359768 Tested-by: Shelley Chen <shchen@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-by: Joel Kitching <kitching@chromium.org> Commit-Queue: Shelley Chen <shchen@chromium.org>
* make_dev_ssd.sh: Correct root partition regular expressionHung-Te Lin2020-09-231-1/+1
| | | | | | | | | | | | | | | | Discovered by CL:2353632, the regular expression for extracting rootfs partition should include non-digit character first otherwise we won't get correct number when the partition number is longer than one digit (e.g., >=10). BUG=None TEST=./make_dev_ssd.sh BRANCH=none Change-Id: I155e04beec47c55df4d09cb78168ab0a7407c697 Signed-off-by: Hung-Te Lin <hungte@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2353776 Reviewed-by: Kuang-che Wu <kcwu@chromium.org>
* firmware/2lib: Handle errors in alternate bootHsuan Ting Chen2020-09-212-5/+30
| | | | | | | | | | | | | | | | | | | | Handle three different errors in alternate boot: - VB2_UI_ERROR_ALTERNATE_BOOT_DISABLED - VB2_UI_ERROR_NO_BOOTLOADER - VB2_UI_ERROR_ALTERNATE_BOOT_FAILED BUG=b:146399181, b:161092974 TEST=make clean && make runtests BRANCH=puff, zork Cq-Depend: chromium:2384995 Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: I1e6572ed4a1c756d6d3727818439de25cad03158 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2382998 Tested-by: Shelley Chen <shchen@chromium.org> Reviewed-by: Joel Kitching <kitching@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-by: Shelley Chen <shchen@chromium.org>
* vboot/ui: Force to reacquire log on initializationstabilize-13482.BHsuan Ting Chen2020-09-174-9/+95
| | | | | | | | | | | | | | | | | | | | Force to reacquire a newer firmware log snapshot every time when the user enters the firmware log screen. Re-entering (e.g. back from language selection or debug info tab) will still show the cached firmware log string. BUG=b:146399181, b:168442372 TEST=make clean && make runtests TEST=Build locally, navigate to the firmware log screen, go back, and enter the firmware log screen again. BRANCH=none Cq-Depend: chromium:2409742 Change-Id: I8c3eea23446c58603ce698a86f1aca4b264ebb0e Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2411761 Commit-Queue: Yu-Ping Wu <yupingso@chromium.org>
* fuzzers: Initialize secdataJulius Werner2020-09-152-12/+18
| | | | | | | | | | | | | | | | | | CL:2353775 made the functions tested by vb2_keyblock_fuzzer and vb2_preamble_fuzzer look at secdata, which broke the fuzzer because they don't initialize secdata the way a normal boot would. This patch makes the fuzzers initialize both firmware and kernel secdata explicitly (and nvdata as well for good measure, although I think it's technically not needed). BRANCH=None BUG=chromium:1125143,chromium:1124172 TEST=None Signed-off-by: Julius Werner <jwerner@chromium.org> Change-Id: Id9aaa4d44a20455133adc4c2bc524895629edfb9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2402423 Commit-Queue: Joel Kitching <kitching@chromium.org>
* host: Make gpiochip path buffer largerJacob Garber2020-09-151-1/+1
| | | | | | | | | | | | | | | | | | | | The name of a gpiochip can in theory be up to NAME_MAX characters long (usually 255), which exceeds the length of the 30 byte buffer allocated for it. In practice we won't need more than the 30 bytes, but the smaller buffer trips a -Wformat-truncation warning from GCC that makes the build fail. Make the buffer bigger to keep GCC happy. BUG=none BRANCH=none TEST=make utillib compiles on BeagleBone Black Change-Id: I528f395033f58057846e717ff126e7a5dca504e3 Signed-off-by: Jacob Garber <jgarber1@ualberta.ca> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2393193 Tested-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Commit-Queue: Joel Kitching <kitching@chromium.org>
* vboot/ui: Disallow Ctrl-S when GBB forces dev modeYu-Ping Wu2020-09-122-0/+18
| | | | | | | | | | | | | | | | | When GBB forces developer mode (VB2_GBB_FLAG_FORCE_DEV_SWITCH_ON), disallow Ctrl-S shortcut in developer screens. Beep and show an error message when Ctrl-S is pressed. BRANCH=zork BUG=b:146399181, b:164975737 TEST=export CC=x86_64-pc-linux-gnu-clang; make runtests TEST=emerge-nami depthcharge Cq-Depend: chromium:2397556 Change-Id: I62d18575290498b7ae829c2b3a2ff8dda6679636 Signed-off-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2390593 Reviewed-by: Hsuan Ting Chen <roccochen@chromium.org>
* COIL: Change denylist to blocklistDaisuke Nojiri2020-09-113-5/+5
| | | | | | | | | | | | | | | The signer uses BLOCKLIST instead of DENYLIST. This patches make the language match. BUG=b:163883397 BRANCH=None TEST=egrep -i -I -r "deny.*list" TEST=make runtests Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Change-Id: I47c913eb2ca89cd3eea4ca3ff5f1accb223ba418 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2401968 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* COIL: Change sane to inclusive wordsDaisuke Nojiri2020-09-118-9/+8
| | | | | | | | | | | | BUG=b:163883397 BRANCH=None TEST=make runtests TEST=egrep -r -i -I '(sane|insane)' Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Change-Id: I109207575e2c00d6aa3b0ed17de7f699087a9658 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2369464 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* vboot: Introduce alternate boot functionalityJoel Kitching2020-09-117-6/+281
| | | | | | | | | | | | | | | | | | | | Introduce alternate boot functionality both via keyboard shortcut ("Ctrl+L") to directly boot into the default alternate bootloader, and via menu ("Alternate bootloader" on dev screen) to show a screen listing available bootloaders. BUG=b:146399181, b:161092974 TEST=make clean && make runtests BRANCH=puff, zork Cq-Depend: chromium:2339040 Signed-off-by: Joel Kitching <kitching@google.com> Change-Id: I28f157936017719dc95656db147967f5e61a1407 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2335017 Commit-Queue: Yu-Ping Wu <yupingso@chromium.org> Tested-by: Hsuan Ting Chen <roccochen@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-by: Joel Kitching <kitching@chromium.org>