Merge "bluejay: conf: run ufs ffu script after boot complete" into udc-dev am: 8b30bcd03a

Original change: https://googleplex-android-review.googlesource.com/c/device/google/bluejay/+/22135126

Change-Id: Id9264c60510327a31d6b7c44dcfabe40bcbef048
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Leo Liou 2023-04-17 10:26:03 +00:00 committed by Automerger Merge Worker
commit 929c41c4ed
4 changed files with 55 additions and 0 deletions

View file

@ -247,3 +247,5 @@ PRODUCT_PRODUCT_PROPERTIES ?= \
PRODUCT_PRODUCT_PROPERTIES += \
setupwizard.feature.enable_quick_start_flow_for_debug=true \
# UFS: the script is used to select the corresponding firmware to run FFU.
PRODUCT_PACKAGES += ufs_firmware_update.sh

27
storage/Android.bp Normal file
View file

@ -0,0 +1,27 @@
//
// Copyright (C) 2017 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package {
default_applicable_licenses: [
"//device/google/bluejay:device_google_bluejay_license",
],
}
sh_binary {
name: "ufs_firmware_update.sh",
src: "ufs_firmware_update.sh",
init_rc: ["storage.bluejay.rc"],
vendor: true,
}

View file

@ -0,0 +1,7 @@
on property:sys.boot_completed=1
# Copy ufs firmware to disk
start ufs_firmware_update
service ufs_firmware_update /vendor/bin/ufs_firmware_update.sh
disabled
oneshot

19
storage/ufs_firmware_update.sh Executable file
View file

@ -0,0 +1,19 @@
#!/vendor/bin/sh
#
# The script belongs to the feature of UFS FFU via OTA: go/p23-ffu-ota
# Its purpose is to copy the corresponding firmware into partition for UFS FFU.
ufs_dev="/dev/sys/block/bootdevice"
fw_dir="/vendor/firmware"
blk_dev="/dev/block/by-name/fips"
vendor=$(cat ${ufs_dev}/vendor | tr -d "[:space:]")
model=$(cat ${ufs_dev}/model | tr -d "[:space:]")
rev=$(cat ${ufs_dev}/rev | tr -d "[:space:]")
file=$(find ${fw_dir} -name "*${vendor}${model}${rev}*" | head -n 1)
if [ -n "$file" ]; then
# The first 4KB block at fips partition has been occupied, and unused space begins from 4 KB
# Refer to: go/pixel-mp-ffu-ota-1p
dd if="$file" of=$blk_dev bs=4k seek=1
fi