Use globbing to fetch mac_permissions.xml.
Android master puts that file at a different location, so use similar
logic to official signing script.
TEST="sign_android_image.sh passed locally for both caroline (NYC) &
caroline-bertha (master)."
BUG=b:65610114
BRANCH=none
Change-Id: If33bfbcaa7e6cff95f26ff26a91735c87880f3db
Reviewed-on: https://chromium-review.googlesource.com/686046
Commit-Ready: Garfield Tan <xutan@chromium.org>
Tested-by: Garfield Tan <xutan@chromium.org>
Reviewed-by: Victor Hsieh <victorhsieh@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/image_signing/sign_android_image.sh b/scripts/image_signing/sign_android_image.sh
index 92e4b65..bf5098d 100755
--- a/scripts/image_signing/sign_android_image.sh
+++ b/scripts/image_signing/sign_android_image.sh
@@ -136,8 +136,16 @@
die "Unable to get the public platform key"
fi
+ shopt -s nullglob
+ local xml_list=( "${system_mnt}"/system/etc/**/*mac_permissions.xml )
+ shopt -u nullglob
+ if [[ "${#xml_list[@]}" -ne 1 ]]; then
+ die "Unexpected number of *mac_permissions.xml: ${#xml_list[@]}\n \
+ ${xml_list[*]}"
+ fi
+
+ local xml="${xml_list[0]}"
local orig=$(make_temp_file)
- local xml="${system_mnt}/system/etc/security/mac_permissions.xml"
local pattern='(<signer signature=")\w+("><seinfo value="platform)'
cp "${xml}" "${orig}"
sudo sed -i -E "s/${pattern}/\1${new_cert}"'\2/g' "${xml}"