releasetools: Move the AVB salt setup into common.LoadInfoDict().

We used to do this in add_img_to_target_files.AddImagesToTargetFiles(),
which didn't cover the path when calling from make_recovery_patch. As a
result, /system/bin/install-recovery.sh contains different SHA values
from the actual images.

Test: Set up aosp_bullhead to use AVB. `m dist`, then run the following
      command to verify the generated install-recovery.sh.

  $ ./build/make/tools/releasetools/validate_target_files.py \
      out/dist/aosp_bullhead-target_files-eng.zip

Change-Id: Id7be8fb17072252fcd4d08db2057b8c4af053376
This commit is contained in:
Tao Bao
2018-01-31 12:18:52 -08:00
parent 5edd2821de
commit 12d87fc174
2 changed files with 15 additions and 15 deletions

View File

@@ -46,7 +46,6 @@ Usage: add_img_to_target_files [flag] target_files
from __future__ import print_function from __future__ import print_function
import datetime import datetime
import hashlib
import os import os
import shlex import shlex
import shutil import shutil
@@ -668,17 +667,6 @@ def AddImagesToTargetFiles(filename):
has_recovery = (OPTIONS.info_dict.get("no_recovery") != "true") has_recovery = (OPTIONS.info_dict.get("no_recovery") != "true")
if OPTIONS.info_dict.get("avb_enable") == "true":
fp = None
if "build.prop" in OPTIONS.info_dict:
build_prop = OPTIONS.info_dict["build.prop"]
if "ro.build.fingerprint" in build_prop:
fp = build_prop["ro.build.fingerprint"]
elif "ro.build.thumbprint" in build_prop:
fp = build_prop["ro.build.thumbprint"]
if fp:
OPTIONS.info_dict["avb_salt"] = hashlib.sha256(fp).hexdigest()
# A map between partition names and their paths, which could be used when # A map between partition names and their paths, which could be used when
# generating AVB vbmeta image. # generating AVB vbmeta image.
partitions = dict() partitions = dict()

View File

@@ -31,12 +31,10 @@ import tempfile
import threading import threading
import time import time
import zipfile import zipfile
from hashlib import sha1, sha256
import blockimgdiff import blockimgdiff
from hashlib import sha1 as sha1
class Options(object): class Options(object):
def __init__(self): def __init__(self):
platform_search_path = { platform_search_path = {
@@ -259,6 +257,20 @@ def LoadInfoDict(input_file, input_dir=None):
d["build.prop"] = LoadBuildProp(read_helper, 'SYSTEM/build.prop') d["build.prop"] = LoadBuildProp(read_helper, 'SYSTEM/build.prop')
d["vendor.build.prop"] = LoadBuildProp(read_helper, 'VENDOR/build.prop') d["vendor.build.prop"] = LoadBuildProp(read_helper, 'VENDOR/build.prop')
# Set up the salt (based on fingerprint or thumbprint) that will be used when
# adding AVB footer.
if d.get("avb_enable") == "true":
fp = None
if "build.prop" in d:
build_prop = d["build.prop"]
if "ro.build.fingerprint" in build_prop:
fp = build_prop["ro.build.fingerprint"]
elif "ro.build.thumbprint" in build_prop:
fp = build_prop["ro.build.thumbprint"]
if fp:
d["avb_salt"] = sha256(fp).hexdigest()
return d return d