Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 12d87fc1 authored by Tao Bao's avatar Tao Bao
Browse files

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
parent 5edd2821
Loading
Loading
Loading
Loading
+0 −12
Original line number Original line Diff line number Diff line
@@ -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()
+15 −3
Original line number Original line Diff line number Diff line
@@ -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