Merge commit 'f414f45e1d99b6fcfd8c451cf6880c3b78a6bf84' into HEAD
This commit is contained in:
commit
96e59f2c34
|
@ -528,14 +528,14 @@ else ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT)) # PRODUC
|
|||
$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(VBOOT_SIGNER)
|
||||
$(call pretty,"Target boot image: $@")
|
||||
$(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@.unsigned
|
||||
$(VBOOT_SIGNER) $(FUTILITY) $@.unsigned $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbpubk $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbprivk $@.keyblock $@
|
||||
$(VBOOT_SIGNER) $(FUTILITY) $@.unsigned $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbpubk $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbprivk $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_SUBKEY).vbprivk $@.keyblock $@
|
||||
$(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE))
|
||||
|
||||
.PHONY: bootimage-nodeps
|
||||
bootimage-nodeps: $(MKBOOTIMG) $(VBOOT_SIGNER)
|
||||
@echo "make $@: ignoring dependencies"
|
||||
$(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $(INSTALLED_BOOTIMAGE_TARGET).unsigned
|
||||
$(VBOOT_SIGNER) $(FUTILITY) $(INSTALLED_BOOTIMAGE_TARGET).unsigned $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbpubk $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbprivk $(INSTALLED_BOOTIMAGE_TARGET).keyblock $(INSTALLED_BOOTIMAGE_TARGET)
|
||||
$(VBOOT_SIGNER) $(FUTILITY) $(INSTALLED_BOOTIMAGE_TARGET).unsigned $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbpubk $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbprivk $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_SUBKEY).vbprivk $(INSTALLED_BOOTIMAGE_TARGET).keyblock $(INSTALLED_BOOTIMAGE_TARGET)
|
||||
$(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE))
|
||||
|
||||
else # PRODUCT_SUPPORTS_VBOOT != true
|
||||
|
@ -758,6 +758,7 @@ $(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_VERITY_PARTITION),$(hide) ech
|
|||
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VENDOR_VERITY_PARTITION),$(hide) echo "vendor_verity_block_device=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VENDOR_VERITY_PARTITION)" >> $(1))
|
||||
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT),$(hide) echo "vboot=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT)" >> $(1))
|
||||
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT),$(hide) echo "vboot_key=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY)" >> $(1))
|
||||
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT),$(hide) echo "vboot_subkey=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_SUBKEY)" >> $(1))
|
||||
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT),$(hide) echo "futility=$(FUTILITY)" >> $(1))
|
||||
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT),$(hide) echo "vboot_signer_cmd=$(VBOOT_SIGNER)" >> $(1))
|
||||
$(if $(filter true,$(BOARD_BUILD_SYSTEM_ROOT_IMAGE)),\
|
||||
|
@ -907,7 +908,7 @@ define build-recoveryimage-target
|
|||
$(if $(filter true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_BOOT_SIGNER)),\
|
||||
$(BOOT_SIGNER) /recovery $(1) $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).pk8 $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY).x509.pem $(1))
|
||||
$(if $(filter true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VBOOT)), \
|
||||
$(VBOOT_SIGNER) $(FUTILITY) $(1).unsigned $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbpubk $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbprivk $(1).keyblock $(1))
|
||||
$(VBOOT_SIGNER) $(FUTILITY) $(1).unsigned $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbpubk $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_KEY).vbprivk $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VBOOT_SIGNING_SUBKEY).vbprivk $(1).keyblock $(1))
|
||||
$(hide) $(call assert-max-image-size,$(1),$(BOARD_RECOVERYIMAGE_PARTITION_SIZE))
|
||||
@echo ----- Made recovery image: $(1) --------
|
||||
endef
|
||||
|
|
|
@ -104,6 +104,7 @@ _product_var_list := \
|
|||
PRODUCT_SYSTEM_PROPERTY_BLACKLIST \
|
||||
PRODUCT_SYSTEM_SERVER_JARS \
|
||||
PRODUCT_VBOOT_SIGNING_KEY \
|
||||
PRODUCT_VBOOT_SIGNING_SUBKEY \
|
||||
PRODUCT_VERITY_SIGNING_KEY \
|
||||
PRODUCT_SYSTEM_VERITY_PARTITION \
|
||||
PRODUCT_VENDOR_VERITY_PARTITION \
|
||||
|
|
|
@ -43,7 +43,7 @@ ifeq "" "$(PLATFORM_VERSION)"
|
|||
# which is the version that we reveal to the end user.
|
||||
# Update this value when the platform version changes (rather
|
||||
# than overriding it somewhere else). Can be an arbitrary string.
|
||||
PLATFORM_VERSION := 6.0.60
|
||||
PLATFORM_VERSION := 6.0
|
||||
endif
|
||||
|
||||
ifeq "" "$(PLATFORM_SDK_VERSION)"
|
||||
|
@ -104,7 +104,7 @@ ifeq "" "$(PLATFORM_SECURITY_PATCH)"
|
|||
# Can be an arbitrary string, but must be a single word.
|
||||
#
|
||||
# If there is no $PLATFORM_SECURITY_PATCH set, keep it empty.
|
||||
PLATFORM_SECURITY_PATCH := 2015-09-01
|
||||
PLATFORM_SECURITY_PATCH := 2015-10-01
|
||||
endif
|
||||
|
||||
ifeq "" "$(PLATFORM_BASE_OS)"
|
||||
|
|
12
envsetup.sh
12
envsetup.sh
|
@ -1350,14 +1350,20 @@ function godir () {
|
|||
return
|
||||
fi
|
||||
T=$(gettop)
|
||||
if [[ ! -f $T/filelist ]]; then
|
||||
if [ ! "$OUT_DIR" = "" ]; then
|
||||
mkdir -p $OUT_DIR
|
||||
FILELIST=$OUT_DIR/filelist
|
||||
else
|
||||
FILELIST=$T/filelist
|
||||
fi
|
||||
if [[ ! -f $FILELIST ]]; then
|
||||
echo -n "Creating index..."
|
||||
(\cd $T; find . -wholename ./out -prune -o -wholename ./.repo -prune -o -type f > filelist)
|
||||
(\cd $T; find . -wholename ./out -prune -o -wholename ./.repo -prune -o -type f > $FILELIST)
|
||||
echo " Done"
|
||||
echo ""
|
||||
fi
|
||||
local lines
|
||||
lines=($(\grep "$1" $T/filelist | sed -e 's/\/[^/]*$//' | sort | uniq))
|
||||
lines=($(\grep "$1" $FILELIST | sed -e 's/\/[^/]*$//' | sort | uniq))
|
||||
if [[ ${#lines[@]} = 0 ]]; then
|
||||
echo "Not found"
|
||||
return
|
||||
|
|
|
@ -111,6 +111,7 @@ PRODUCT_PACKAGES += \
|
|||
run-as \
|
||||
schedtest \
|
||||
sdcard \
|
||||
secdiscard \
|
||||
services \
|
||||
settings \
|
||||
sgdisk \
|
||||
|
|
|
@ -89,5 +89,6 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
|
|||
|
||||
PRODUCT_COPY_FILES += \
|
||||
system/core/rootdir/init.usb.rc:root/init.usb.rc \
|
||||
system/core/rootdir/init.usb.configfs.rc:root/init.usb.configfs.rc \
|
||||
system/core/rootdir/ueventd.rc:root/ueventd.rc \
|
||||
system/core/rootdir/etc/hosts:system/etc/hosts
|
||||
|
|
|
@ -51,6 +51,7 @@ PRODUCT_PACKAGES += \
|
|||
sensors.ranchu
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml \
|
||||
device/generic/goldfish/fstab.goldfish:root/fstab.goldfish \
|
||||
device/generic/goldfish/init.goldfish.rc:root/init.goldfish.rc \
|
||||
device/generic/goldfish/init.goldfish.sh:system/etc/init.goldfish.sh \
|
||||
|
|
|
@ -22,3 +22,4 @@ PRODUCT_SUPPORTS_VBOOT := true
|
|||
# We expect this file to exist with the suffixes ".vbprivk" and ".vbpupk".
|
||||
# TODO: find a proper location for this
|
||||
PRODUCT_VBOOT_SIGNING_KEY := external/vboot_reference/tests/devkeys/kernel_data_key
|
||||
PRODUCT_VBOOT_SIGNING_SUBKEY := external/vboot_reference/tests/devkeys/kernel_subkey
|
||||
|
|
|
@ -342,7 +342,7 @@ var:sdk.linux_download
|
|||
<tr>
|
||||
<td rowspan="3">Windows</td>
|
||||
<td>
|
||||
<a onclick="return onDownload(this)" id="win-bundle"
|
||||
<a onclick="return onDownload(this,false,true)" id="win-bundle"
|
||||
href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.win_bundle_exe_download ?>"
|
||||
><?cs var:studio.win_bundle_exe_download ?></a><br>(Recommended)
|
||||
</td>
|
||||
|
@ -353,7 +353,7 @@ var:sdk.linux_download
|
|||
<tr>
|
||||
<!-- blank TD from Windows rowspan -->
|
||||
<td>
|
||||
<a onclick="return onDownload(this)"
|
||||
<a onclick="return onDownload(this,false,true)"
|
||||
href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.win_notools_exe_download ?>"
|
||||
><?cs var:studio.win_notools_exe_download ?></a><br>(No SDK tools included)
|
||||
</td>
|
||||
|
@ -364,7 +364,7 @@ var:sdk.linux_download
|
|||
<tr>
|
||||
<!-- blank TD from Windows rowspan -->
|
||||
<td>
|
||||
<a onclick="return onDownload(this)"
|
||||
<a onclick="return onDownload(this,false,true)"
|
||||
href="https://dl.google.com/dl/android/studio/ide-zips/<?cs var:studio.version ?>/<?cs var:studio.win_bundle_download ?>"
|
||||
><?cs var:studio.win_bundle_download ?></a>
|
||||
</td>
|
||||
|
@ -375,7 +375,7 @@ var:sdk.linux_download
|
|||
<tr>
|
||||
<td><nobr>Mac OS X</nobr></td>
|
||||
<td>
|
||||
<a onclick="return onDownload(this)" id="mac-bundle"
|
||||
<a onclick="return onDownload(this,false,true)" id="mac-bundle"
|
||||
href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.mac_bundle_download ?>"
|
||||
><?cs var:studio.mac_bundle_download ?></a>
|
||||
</td>
|
||||
|
@ -386,7 +386,7 @@ var:sdk.linux_download
|
|||
<tr>
|
||||
<td>Linux</td>
|
||||
<td>
|
||||
<a onclick="return onDownload(this)" id="linux-bundle"
|
||||
<a onclick="return onDownload(this,false,true)" id="linux-bundle"
|
||||
href="https://dl.google.com/dl/android/studio/ide-zips/<?cs var:studio.version ?>/<?cs var:studio.linux_bundle_download ?>"
|
||||
><?cs var:studio.linux_bundle_download ?></a>
|
||||
</td>
|
||||
|
@ -450,7 +450,11 @@ var:sdk.linux_download
|
|||
}
|
||||
|
||||
$("#downloadForRealz").attr('bundle', bundle);
|
||||
$("a#downloadForRealz").attr("name", $(link).attr('href'));
|
||||
if (bundle && !button) {
|
||||
$("a#downloadForRealz").attr("name", "#" + $(link).attr('id'));
|
||||
} else {
|
||||
$("a#downloadForRealz").attr("name", $(link).attr('href'));
|
||||
}
|
||||
|
||||
$("#tos").show();
|
||||
$("#landing").hide();
|
||||
|
|
|
@ -42,6 +42,9 @@ OPTIONS = common.OPTIONS
|
|||
|
||||
OPTIONS.add_missing = False
|
||||
OPTIONS.rebuild_recovery = False
|
||||
OPTIONS.replace_verity_public_key = False
|
||||
OPTIONS.replace_verity_private_key = False
|
||||
OPTIONS.verity_signer_path = None
|
||||
|
||||
def AddSystem(output_zip, prefix="IMAGES/", recovery_img=None, boot_img=None):
|
||||
"""Turn the contents of SYSTEM into a system image and store it in
|
||||
|
@ -315,18 +318,27 @@ def AddImagesToTargetFiles(filename):
|
|||
common.ZipClose(output_zip)
|
||||
|
||||
def main(argv):
|
||||
def option_handler(o, _):
|
||||
def option_handler(o, a):
|
||||
if o in ("-a", "--add_missing"):
|
||||
OPTIONS.add_missing = True
|
||||
elif o in ("-r", "--rebuild_recovery",):
|
||||
OPTIONS.rebuild_recovery = True
|
||||
elif o == "--replace_verity_private_key":
|
||||
OPTIONS.replace_verity_private_key = (True, a)
|
||||
elif o == "--replace_verity_public_key":
|
||||
OPTIONS.replace_verity_public_key = (True, a)
|
||||
elif o == "--verity_signer_path":
|
||||
OPTIONS.verity_signer_path = a
|
||||
else:
|
||||
return False
|
||||
return True
|
||||
|
||||
args = common.ParseOptions(
|
||||
argv, __doc__, extra_opts="ar",
|
||||
extra_long_opts=["add_missing", "rebuild_recovery"],
|
||||
extra_long_opts=["add_missing", "rebuild_recovery",
|
||||
"replace_verity_public_key=",
|
||||
"replace_verity_private_key=",
|
||||
"verity_signer_path="],
|
||||
extra_option_handler=option_handler)
|
||||
|
||||
|
||||
|
|
|
@ -442,7 +442,9 @@ def _BuildBootableImage(sourcedir, fs_config_file, info_dict=None,
|
|||
img_keyblock = tempfile.NamedTemporaryFile()
|
||||
cmd = [info_dict["vboot_signer_cmd"], info_dict["futility"],
|
||||
img_unsigned.name, info_dict["vboot_key"] + ".vbpubk",
|
||||
info_dict["vboot_key"] + ".vbprivk", img_keyblock.name,
|
||||
info_dict["vboot_key"] + ".vbprivk",
|
||||
info_dict["vboot_subkey"] + ".vbprivk",
|
||||
img_keyblock.name,
|
||||
img.name]
|
||||
p = Run(cmd, stdout=subprocess.PIPE)
|
||||
p.communicate()
|
||||
|
|
|
@ -130,7 +130,9 @@ OPTIONS.oem_source = None
|
|||
OPTIONS.fallback_to_full = True
|
||||
OPTIONS.full_radio = False
|
||||
OPTIONS.full_bootloader = False
|
||||
|
||||
# Stash size cannot exceed cache_size * threshold.
|
||||
OPTIONS.cache_size = None
|
||||
OPTIONS.stash_threshold = 0.8
|
||||
|
||||
def MostPopularKey(d, default):
|
||||
"""Given a dict, return the key corresponding to the largest
|
||||
|
|
|
@ -210,6 +210,16 @@ class SparseImage(object):
|
|||
nonzero_blocks = []
|
||||
reference = '\0' * self.blocksize
|
||||
|
||||
# Workaround for bug 23227672. For squashfs, we don't have a system.map. So
|
||||
# the whole system image will be treated as a single file. But for some
|
||||
# unknown bug, the updater will be killed due to OOM when writing back the
|
||||
# patched image to flash (observed on lenok-userdebug MEA49). Prior to
|
||||
# getting a real fix, we evenly divide the non-zero blocks into smaller
|
||||
# groups (currently 1024 blocks or 4MB per group).
|
||||
# Bug: 23227672
|
||||
MAX_BLOCKS_PER_GROUP = 1024
|
||||
nonzero_groups = []
|
||||
|
||||
f = self.simg_f
|
||||
for s, e in remaining:
|
||||
for b in range(s, e):
|
||||
|
@ -232,12 +242,22 @@ class SparseImage(object):
|
|||
nonzero_blocks.append(b)
|
||||
nonzero_blocks.append(b+1)
|
||||
|
||||
assert zero_blocks or nonzero_blocks or clobbered_blocks
|
||||
if len(nonzero_blocks) >= MAX_BLOCKS_PER_GROUP:
|
||||
nonzero_groups.append(nonzero_blocks)
|
||||
# Clear the list.
|
||||
nonzero_blocks = []
|
||||
|
||||
if nonzero_blocks:
|
||||
nonzero_groups.append(nonzero_blocks)
|
||||
nonzero_blocks = []
|
||||
|
||||
assert zero_blocks or nonzero_groups or clobbered_blocks
|
||||
|
||||
if zero_blocks:
|
||||
out["__ZERO"] = rangelib.RangeSet(data=zero_blocks)
|
||||
if nonzero_blocks:
|
||||
out["__NONZERO"] = rangelib.RangeSet(data=nonzero_blocks)
|
||||
if nonzero_groups:
|
||||
for i, blocks in enumerate(nonzero_groups):
|
||||
out["__NONZERO-%d" % i] = rangelib.RangeSet(data=blocks)
|
||||
if clobbered_blocks:
|
||||
out["__COPY"] = clobbered_blocks
|
||||
|
||||
|
|
Loading…
Reference in New Issue