diff --git a/arm32-vendor.mk b/arm32-vendor.mk index cc2aee92c59a83a050aae2834e8fa220db2617e5..9a34d5ddddf880b8c9bbc53e454e14f398fd4f16 100644 --- a/arm32-vendor.mk +++ b/arm32-vendor.mk @@ -7,11 +7,12 @@ PRODUCT_PROPERTY_OVERRIDES += \ # take priority and override the rules it inherit from other mk files # see copy file rules in core/Makefile PRODUCT_SDK_ADDON_COPY_FILES += \ - development/sys-img/advancedFeatures.ini.arm:images/armeabi-v7a/advancedFeatures.ini \ + device/generic/goldfish/data/etc/advancedFeatures.ini.arm:images/armeabi-v7a/advancedFeatures.ini \ prebuilts/qemu-kernel/arm64/$(PRODUCT_KERNEL_VERSION)/kernel-qemu2:images/armeabi-v7a/kernel-ranchu-64 PRODUCT_COPY_FILES += \ + device/generic/goldfish/fstab.ranchu.initrd.arm:$(TARGET_COPY_OUT_RAMDISK)/fstab.ranchu \ device/generic/goldfish/manifest-arm.xml:$(TARGET_COPY_OUT_VENDOR)/manifest.xml \ - development/sys-img/advancedFeatures.ini.arm:advancedFeatures.ini \ + device/generic/goldfish/data/etc/advancedFeatures.ini.arm:advancedFeatures.ini \ prebuilts/qemu-kernel/arm64/$(PRODUCT_KERNEL_VERSION)/kernel-qemu2:kernel-ranchu-64 \ device/generic/goldfish/fstab.ranchu.arm:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu diff --git a/arm64-vendor.mk b/arm64-vendor.mk index a579d3540b549ce1ee30aa86b5554c43e3a54f39..a05654d1cd952d6457c07baa07d98eeb89ae0e2d 100644 --- a/arm64-vendor.mk +++ b/arm64-vendor.mk @@ -7,12 +7,13 @@ PRODUCT_PROPERTY_OVERRIDES += \ # take priority and override the rules it inherit from other mk files # see copy file rules in core/Makefile PRODUCT_SDK_ADDON_COPY_FILES += \ - development/sys-img/advancedFeatures.ini.arm:images/arm64-v8a/advancedFeatures.ini \ + device/generic/goldfish/data/etc/advancedFeatures.ini.arm:images/arm64-v8a/advancedFeatures.ini \ prebuilts/qemu-kernel/arm64/$(PRODUCT_KERNEL_VERSION)/kernel-qemu2:images/arm64-v8a/kernel-ranchu PRODUCT_COPY_FILES += \ + device/generic/goldfish/fstab.ranchu.initrd.arm:$(TARGET_COPY_OUT_RAMDISK)/fstab.ranchu \ device/generic/goldfish/manifest-arm.xml:$(TARGET_COPY_OUT_VENDOR)/manifest.xml \ - development/sys-img/advancedFeatures.ini.arm:advancedFeatures.ini \ + device/generic/goldfish/data/etc/advancedFeatures.ini.arm:advancedFeatures.ini \ prebuilts/qemu-kernel/arm64/$(PRODUCT_KERNEL_VERSION)/kernel-qemu2:kernel-ranchu \ device/generic/goldfish/fstab.ranchu.arm:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu EMULATOR_VENDOR_NO_GNSS := true diff --git a/data/etc/advancedFeatures.ini b/data/etc/advancedFeatures.ini index 70dec80ec352e8038ee394cdf92ffb34b84d5488..e1f8b6ade708d6f5db1036c20f94d926c603dd6b 100644 --- a/data/etc/advancedFeatures.ini +++ b/data/etc/advancedFeatures.ini @@ -5,7 +5,6 @@ GLESDynamicVersion = on GLDMA = on EncryptUserData = on IntelPerformanceMonitoringUnit = on -SystemAsRoot = on Wifi = on -KernelDeviceTreeBlobSupport = on HostComposition = on +DynamicPartition = on diff --git a/data/etc/advancedFeatures.ini.arm b/data/etc/advancedFeatures.ini.arm index 29c1cf72ee27df3cd6f3fc1271ad3c39c572abf8..0acc6d557c4d046649c373831ef8102d5c33888d 100644 --- a/data/etc/advancedFeatures.ini.arm +++ b/data/etc/advancedFeatures.ini.arm @@ -3,4 +3,4 @@ LogcatPipe = on GLAsyncSwap = on GLESDynamicVersion = on GLDMA = on -SystemAsRoot = on +DynamicPartition = on diff --git a/data/etc/user/advancedFeatures.ini b/data/etc/user/advancedFeatures.ini index cb8280ac46356920a12941f2ae4c17da63f613de..a63f367450a637945f2c2024a3480dd808218f04 100644 --- a/data/etc/user/advancedFeatures.ini +++ b/data/etc/user/advancedFeatures.ini @@ -6,7 +6,6 @@ GLESDynamicVersion = on PlayStoreImage = on EncryptUserData = on IntelPerformanceMonitoringUnit = on -SystemAsRoot = on Wifi = on -KernelDeviceTreeBlobSupport = on HostComposition = on +DynamicPartition = on diff --git a/fstab.ranchu b/fstab.ranchu index 49253348537006710b6d89a0723150ce3528502a..5fcd5ceceff5683d96cf709f59744f4b2bea2fd5 100644 --- a/fstab.ranchu +++ b/fstab.ranchu @@ -1,7 +1,7 @@ # Android fstab file. -#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags> -# The filesystem that contains the filesystem checker binary (typically /system) cannot -# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK -/dev/block/vdc /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,quota,fileencryption=aes-256-xts:aes-256-cts,reservedsize=128M -/devices/*/block/vdf auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata -/dev/block/zram0 none swap defaults zramsize=75% +#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags> +system /system ext4 ro,barrier=1 wait,logical,avb=vbmeta,first_stage_mount +vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount +/dev/block/vdc /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,quota,fileencryption=aes-256-xts:aes-256-cts,reservedsize=128M +/devices/*/block/vdf auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata +dev/block/zram0 none swap defaults zramsize=75% diff --git a/fstab.ranchu.arm b/fstab.ranchu.arm index 41ecddc45c6d191d1537ec433903ee796e882596..a821e979f02a6c8a944e49bd7e048f66db076bba 100644 --- a/fstab.ranchu.arm +++ b/fstab.ranchu.arm @@ -2,5 +2,7 @@ #<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags> # The filesystem that contains the filesystem checker binary (typically /system) cannot # specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK -/dev/block/vdc /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,quota -/devices/*/block/vde auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata +system /system ext4 ro,barrier=1 wait,logical,first_stage_mount +vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount +/dev/block/vdc /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,quota +/devices/*/block/vde auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata diff --git a/fstab.ranchu.initrd b/fstab.ranchu.initrd new file mode 100644 index 0000000000000000000000000000000000000000..e792febbb3a9db3c9dbcf0f6c6e028b442687ca6 --- /dev/null +++ b/fstab.ranchu.initrd @@ -0,0 +1,4 @@ +# Android fstab file for ramdisk +#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags> +system /system ext4 ro,barrier=1 wait,logical,avb=vbmeta,first_stage_mount +vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount diff --git a/fstab.ranchu.initrd.arm b/fstab.ranchu.initrd.arm new file mode 100644 index 0000000000000000000000000000000000000000..560566344695c8a228125f86e9f6493cd1b7f623 --- /dev/null +++ b/fstab.ranchu.initrd.arm @@ -0,0 +1,4 @@ +# Android fstab file. +#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags> +system /system ext4 ro,barrier=1 wait,logical,first_stage_mount +vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount diff --git a/gralloc/Android.mk b/gralloc/Android.mk index a837f0a476432a4e1a94d43d2147c3de2fc90739..e0b0b85d42daa29828866f7344541358ca5c01f2 100644 --- a/gralloc/Android.mk +++ b/gralloc/Android.mk @@ -32,6 +32,7 @@ LOCAL_HEADER_LIBRARIES := libhardware_headers LOCAL_MODULE := gralloc.goldfish.default LOCAL_CFLAGS:= -DLOG_TAG=\"gralloc\" -Wno-missing-field-initializers +LOCAL_CFLAGS:= -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION) ifeq ($(TARGET_USE_PAN_DISPLAY),true) LOCAL_CFLAGS += -DUSE_PAN_DISPLAY=1 endif diff --git a/gralloc/gralloc.cpp b/gralloc/gralloc.cpp index 07bbfbacc48568a5a87fe4c647859c8500e55bfd..3f2c025115e134da7fa4949dec3932a5629fff1a 100644 --- a/gralloc/gralloc.cpp +++ b/gralloc/gralloc.cpp @@ -89,6 +89,10 @@ struct private_module_t HAL_MODULE_INFO_SYM = { .unregisterBuffer = gralloc_unregister_buffer, .lock = gralloc_lock, .unlock = gralloc_unlock, +#if PLATFORM_SDK_VERSION >= 28 + .validateBufferSize = NULL, + .getTransportSize = NULL, +#endif }, .framebuffer = 0, .flags = 0, diff --git a/kernel-tests/advancedFeatures.ini b/kernel-tests/advancedFeatures.ini index 0ba5e0412ab3c7b115ced52f6877ea74eb3c0a2b..e1f8b6ade708d6f5db1036c20f94d926c603dd6b 100644 --- a/kernel-tests/advancedFeatures.ini +++ b/kernel-tests/advancedFeatures.ini @@ -5,8 +5,6 @@ GLESDynamicVersion = on GLDMA = on EncryptUserData = on IntelPerformanceMonitoringUnit = on -SystemAsRoot = on Wifi = on -KernelDeviceTreeBlobSupport = on HostComposition = on - +DynamicPartition = on diff --git a/sepolicy/common/netd.te b/sepolicy/common/netd.te index 1176c05d16d5cbcb51b0e502ee73fe8a23319a39..09a28b9967441bb65e342f79d84c9743c6d9252b 100644 --- a/sepolicy/common/netd.te +++ b/sepolicy/common/netd.te @@ -1,4 +1,3 @@ dontaudit netd self:capability sys_module; #TODO: This can safely be ignored until b/62954877 is fixed dontaudit netd kernel:system module_request; -allow netd self:bpf { map_create map_read map_write }; diff --git a/tools/mk_combined_img.py b/tools/mk_combined_img.py old mode 100644 new mode 100755 index 6769db259102eae67b039eed50ebdb7015757665..1b7bbff031ffca6cc6f28021ced6dc6eddf978ca --- a/tools/mk_combined_img.py +++ b/tools/mk_combined_img.py @@ -74,7 +74,7 @@ def write_partition(partition, output_file, offset): def unsparse_partition(partition): # if the input image is in sparse format, unsparse it - simg2img = os.environ.get('ANDROID_HOST_OUT', '/usr') + '/bin/simg2img' + simg2img = os.environ.get('SIMG2IMG', 'simg2img') print "Unsparsing %s" % (partition["path"]), partition["fd"], temp_file = mkstemp() shell_command([simg2img, partition["path"], temp_file]) @@ -83,12 +83,13 @@ def unsparse_partition(partition): return def clear_partition_table(filename): - sgdisk = os.environ.get('ANDROID_HOST_OUT', '/usr') + '/bin/sgdisk' + sgdisk = os.environ.get('SGDISK', 'sgdisk') + print "%s --clear %s" % (sgdisk, filename) shell_command([sgdisk, '--clear', filename]) return def add_partition(partition, output_file): - sgdisk = os.environ.get('ANDROID_HOST_OUT', '/usr') + '/bin/sgdisk' + sgdisk = os.environ.get('SGDISK', 'sgdisk') num = str(partition["num"]) new_comm = '--new='+num+':'+partition["start"]+':'+partition["end"] type_comm = '--type='+num+':8300' diff --git a/tools/mk_vbmeta_boot_params.sh b/tools/mk_vbmeta_boot_params.sh new file mode 100755 index 0000000000000000000000000000000000000000..17a39e8eed1683115fa0d70a4535d58268a94f7d --- /dev/null +++ b/tools/mk_vbmeta_boot_params.sh @@ -0,0 +1,89 @@ +#!/bin/bash + +if [ $# -ne 3 ]; then + echo "Usage: $0 <vbmeta.img> <system.img> <VbmetaBootParams.textproto>" + exit 1 +fi + +# Example Output from 'avbtool calculate_vbmeta_digest --image $OUT/vbmeta.img': +# 3254db8a232946c712b5c6f8c1a80b31f2a200bab98553d86f5915d06bfd5436 +# +# Example Output from 'avbtool info_image --image $OUT/vbmeta.img': +# +# Minimum libavb version: 1.0 +# Header Block: 256 bytes +# Authentication Block: 576 bytes +# Auxiliary Block: 1600 bytes +# Algorithm: SHA256_RSA4096 +# Rollback Index: 0 +# Flags: 0 +# Release String: 'avbtool 1.1.0' +# Descriptors: +# ... +# +# + +set -e + +function die { + echo $1 >&2 + exit 1 +} + +# Incrementing major version causes emulator binaries that do not support the +# version to ignore this file. This can be useful if there is a change +# not supported by older emulator binaries. +readonly MAJOR_VERSION=2 + +readonly VBMETAIMG=$1 +readonly SYSIMG=$2 +readonly TARGET=$3 + +# Extract the digest +readonly VBMETA_DIGEST=$(${AVBTOOL:-avbtool} calculate_vbmeta_digest --image $VBMETAIMG) + +echo "digest is $VBMETA_DIGEST" + +readonly INFO_OUTPUT=$(${AVBTOOL:-avbtool} info_image --image $VBMETAIMG | grep "^Algorithm:") +echo "output is $INFO_OUTPUT" + +# Extract the algorithm +readonly ALG_OUTPUT=$(echo $INFO_OUTPUT | grep "Algorithm:") +echo \"$ALG_OUTPUT\" +readonly ALG_SPLIT=($(echo $ALG_OUTPUT | tr ' ' '\n')) +readonly ORG_ALGORITHM=${ALG_SPLIT[1]} + +if [[ $ORG_ALGORITHM == "SHA256_RSA4096" ]]; then +VBMETA_HASH_ALG=sha256 +else +die "Don't know anything about $ORG_ALGORITHM" +fi + +echo "hash algorithm is $VBMETA_HASH_ALG" + +# extract the size + +function get_bytes { + MY_OUTPUT=$(${AVBTOOL:-avbtool} info_image --image $1 | grep "$2" ) + MY_SPLIT=($(echo $MY_OUTPUT | tr ' ' '\n')) + MY_BYTES=${MY_SPLIT[2]} + echo $MY_BYTES +} + +HEADER_SIZE=$(get_bytes $VBMETAIMG "Header Block:") +AUTHEN_SIZE=$(get_bytes $VBMETAIMG "Authentication Block:") +AUX_SIZE=$(get_bytes $VBMETAIMG "Auxiliary Block:") +SYSMETA_SIZE=$(get_bytes $SYSIMG "VBMeta size:") + +VBMETA_SIZE=$(expr $HEADER_SIZE + $AUTHEN_SIZE + $AUX_SIZE + $SYSMETA_SIZE) + +echo "vbmeta size $VBMETA_SIZE" + +HEADER_COMMENT="# androidboot.vbmeta.size=$VBMETA_SIZE androidboot.vbmeta.hash_alg=$VBMETA_HASH_ALG androidboot.vbmeta.digest=$VBMETA_DIGEST" + +echo $HEADER_COMMENT > $TARGET +echo "major_version: $MAJOR_VERSION" >> $TARGET +#echo "param: \"androidboot.slot_suffix=_a\"" >> $TARGET +echo "param: \"androidboot.vbmeta.size=$VBMETA_SIZE\"" >> $TARGET +echo "param: \"androidboot.vbmeta.hash_alg=$VBMETA_HASH_ALG\"" >> $TARGET +echo "param: \"androidboot.vbmeta.digest=$VBMETA_DIGEST\"" >> $TARGET diff --git a/vendor.mk b/vendor.mk index 535d59f6dd2ecdd8388ccf67a4cee749c6a1146d..d0089116e6ebdd6c5748122e0f781335dc64449c 100644 --- a/vendor.mk +++ b/vendor.mk @@ -91,6 +91,7 @@ PRODUCT_PACKAGES += \ android.hardware.gnss@1.0-impl endif + PRODUCT_PACKAGES += \ android.hardware.sensors@1.0-impl \ android.hardware.sensors@1.0-service @@ -138,6 +139,7 @@ PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \ + device/generic/goldfish/fstab.ranchu.initrd:$(TARGET_COPY_OUT_RAMDISK)/fstab.ranchu \ device/generic/goldfish/data/etc/apns-conf.xml:data/misc/apns/apns-conf.xml \ device/generic/goldfish/data/etc/local.prop:data/local.prop \ device/generic/goldfish/init.ranchu-core.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.ranchu-core.sh \ diff --git a/x86-vendor.mk b/x86-vendor.mk index 6824b87f4abcfec87b514663777f0b6098f31b6d..4a2eb10a8fe7e258af9e9a6678483bda5da8d231 100644 --- a/x86-vendor.mk +++ b/x86-vendor.mk @@ -8,11 +8,11 @@ PRODUCT_PROPERTY_OVERRIDES += \ # build quite specifically for the emulator, and might not be # entirely appropriate to inherit from for on-device configurations. PRODUCT_COPY_FILES += \ - development/sys-img/advancedFeatures.ini:advancedFeatures.ini \ + device/generic/goldfish/data/etc/advancedFeatures.ini:advancedFeatures.ini \ device/generic/goldfish/data/etc/encryptionkey.img:encryptionkey.img \ prebuilts/qemu-kernel/x86_64/$(PRODUCT_KERNEL_VERSION)/kernel-qemu2:kernel-ranchu-64 PRODUCT_SDK_ADDON_COPY_FILES += \ - development/sys-img/advancedFeatures.ini:images/x86/advancedFeatures.ini \ + device/generic/goldfish/data/etc/advancedFeatures.ini:images/x86/advancedFeatures.ini \ device/generic/goldfish/data/etc/encryptionkey.img:images/x86/encryptionkey.img \ prebuilts/qemu-kernel/x86_64/$(PRODUCT_KERNEL_VERSION)/kernel-qemu2:images/x86/kernel-ranchu-64 diff --git a/x86_64-vendor.mk b/x86_64-vendor.mk index bab4ae8b36df2156ea507e68484d13656bc4184c..16ccf6a22f6c31e8eebfb4b1eb9be02b64bfb39f 100644 --- a/x86_64-vendor.mk +++ b/x86_64-vendor.mk @@ -8,11 +8,11 @@ PRODUCT_PROPERTY_OVERRIDES += \ # build quite specifically for the emulator, and might not be # entirely appropriate to inherit from for on-device configurations. PRODUCT_COPY_FILES += \ - development/sys-img/advancedFeatures.ini:advancedFeatures.ini \ + device/generic/goldfish/data/etc/advancedFeatures.ini:advancedFeatures.ini \ device/generic/goldfish/data/etc/encryptionkey.img:encryptionkey.img \ prebuilts/qemu-kernel/x86_64/$(PRODUCT_KERNEL_VERSION)/kernel-qemu2:kernel-ranchu PRODUCT_SDK_ADDON_COPY_FILES += \ - development/sys-img/advancedFeatures.ini:images/x86_64/advancedFeatures.ini \ + device/generic/goldfish/data/etc/advancedFeatures.ini:images/x86_64/advancedFeatures.ini \ device/generic/goldfish/data/etc/encryptionkey.img:images/x86_64/encryptionkey.img \ prebuilts/qemu-kernel/x86_64/$(PRODUCT_KERNEL_VERSION)/kernel-qemu2:images/x86_64/kernel-ranchu