Skip to content

Commit

Permalink
dm-verity: put dm-verity info inside AVB2 if AVB2 is enabled [1/1]
Browse files Browse the repository at this point in the history
PD#SWPL-88784

Problem:
Irdeto requests to support AVB2 chained partition

Solution:
1. Move dm-verity info into vbmeta
2. Notice: the partition size is hardcoded in config file when AVB2
chained partition is enabled, for example, see
conf/machine/mesonsc2-ah212.config
DEVICE_PROPERTY_SYSTEM_PARTITION_SIZE = "0x60000000"
DEVICE_PROPERTY_VENDOR_PARTITION_SIZE = "0x1C000000"

If the partition is changed, please modify the related partition size
accordingly.

Verify:
AH219

Change-Id: I868cb9d94b3640065f65356ae21de57689de62bc
Signed-off-by: Matthew Shyu <[email protected]>
  • Loading branch information
Matthew Shyu committed Aug 9, 2022
1 parent 85613ce commit aab8ce5
Show file tree
Hide file tree
Showing 15 changed files with 5,228 additions and 16 deletions.
55 changes: 55 additions & 0 deletions classes/avb-dm-verity.bbclass
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
inherit aml-dm-verity-img

#AVB with DM-verity
AVB_DM_VERITY = '${@bb.utils.contains('DISTRO_FEATURES', 'dm-verity', bb.utils.contains('DISTRO_FEATURES', 'AVB', 'true', 'false' ,d), 'false', d)}'
CHAINED_PARTITION_SUPPORT = "${@bb.utils.contains('DISTRO_FEATURES', 'AVB_chained_partition', 'true', 'false', d)}"
DEPENDS += '${@'python3-native openssl-native avbtool-dm-verity-native avbkey-native' if AVB_DM_VERITY == 'true' else ''}'

def is_numeric_base(s, base):
try:
value = int(s, base)
return True
except ValueError:
return False

python create_avb_dm_verity_image () {
deploy_dir_image = d.getVar('DEPLOY_DIR_IMAGE', True)
dm_verity_image = d.getVar('DM_VERITY_IMAGE', True)
dm_verity_image_type = d.getVar('DM_VERITY_IMAGE_TYPE', True)
name = d.getVar('AVB_DM_VERITY_PARTITON_NAME', True)
chained = d.getVar('CHAINED_PARTITION_SUPPORT', True)
partition_size = d.getVar('AVB_DMVERITY_PARTITON_SIZE', True)
sysconfdir = d.getVar('sysconfdir_native', True)
native_dir = d.getVar('STAGING_DIR_NATIVE', True)
key = d.getVar('AVB_DMVERITY_SIGNINING_KEY', True)
algorithm = d.getVar('AVB_DMVERITY_SIGNINING_ALGORITHM', True)
filename = deploy_dir_image + '/' + dm_verity_image + '.' + dm_verity_image_type + '.verity.env'
verity_array = dict()
try:
with open(filename, 'r') as verity_env:
bb.note('parsing ' + filename)
for item in verity_env.readlines():
if '#' not in item:
data = item.rstrip('\n').partition('=')
verity_array[data[0]] = data[2]
except FileNotFoundError:
bb.error('Cannot find ' + filename)

for data in verity_array:
bb.note(data + ' = ' + verity_array[data])

image_deploy_dir = d.getVar('IMGDEPLOYDIR', True)
machine = d.getVar('MACHINE', True)
# pad to 4096 bytes to match img2simg
cmd = 'avbtool-dm-verity.py add_footer_without_hashtree' + ' --image ' + image_deploy_dir + '/' + dm_verity_image + '-' + machine + '.ext4' + ' --partition_name ' + name + ' --root_digest ' + verity_array['ROOT_HASH'] + ' --salt ' + verity_array['SALT'] + ' --hash_algorithm sha256 ' + ' --data_block_size ' + verity_array['DATA_BLOCK_SIZE'] + ' --hash_block_size ' + verity_array['HASH_BLOCK_SIZE'] + ' --data_size ' + verity_array['DATA_SIZE'] + ' --padding_size 4096'
if chained == 'true':
cmd += ' --key ' + native_dir + '/' + sysconfdir + '/' + key + ' --algorithm ' + algorithm
bb.note(cmd)
bb.process.run(cmd)
if isinstance(partition_size , str) and is_numeric_base(partition_size, 10) or is_numeric_base(partition_size, 16):
cmd = 'avbtool-dm-verity.py resize_image' + ' --image ' + image_deploy_dir + '/' + dm_verity_image + '-' + machine + '.ext4' + ' --partition_size ' + partition_size
bb.note(cmd)
bb.process.run(cmd)
}

IMAGE_POSTPROCESS_COMMAND += '${@'create_avb_dm_verity_image' if AVB_DM_VERITY == 'true' else ''}'
15 changes: 15 additions & 0 deletions conf/machine/mesonsc2-ah212.config
Original file line number Diff line number Diff line change
Expand Up @@ -104,3 +104,18 @@ DEVICE_PROPERTY_AMAZON_DTID = "A3SJQCMWSDF1EG"
## dm-verity
DISTRO_FEATURES_append = " ${@bb.utils.contains('READONLY', 'y', 'dm-verity', '', d)}"
DISTRO_FEATURES_NATIVE_append = " ${@bb.utils.contains('READONLY', 'y', 'dm-verity', '', d)}"

## AVB2 with chained partition support
#DISTRO_FEATURES_append = " AVB "
# For AVB2 chained partition,
# The following informations are needed,
# 1. The rollback index location assigned to each chained partition
# 2. The exact size of the partition
# This is due to that signing and root hash information
# are stored in the AVB2 footer of the partition
# Libavb in U-Boot will look at the end of the partition to look for footer.
#DISTRO_FEATURES_append = " AVB_chained_partition "
#DEVICE_PROPERTY_SYSTEM_ROLLBACK_LOCATION = "1"
#DEVICE_PROPERTY_VENDOR_ROLLBACK_LOCATION = "2"
#DEVICE_PROPERTY_SYSTEM_PARTITION_SIZE = "0x60000000"
#DEVICE_PROPERTY_VENDOR_PARTITION_SIZE = "0x1C000000"
63 changes: 63 additions & 0 deletions license/APACHE
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
Code in this repo uses one or more of the following licenses.
Refer to each file to determine which licenses apply.

-------------------------------------------------------------------------

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-------------------------------------------------------------------------

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

-------------------------------------------------------------------------

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the project nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
7 changes: 7 additions & 0 deletions recipes-core/images/amlogic-yocto.bb
Original file line number Diff line number Diff line change
Expand Up @@ -159,3 +159,10 @@ process_for_read_only_rootfs(){
}

ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('READONLY', 'y', 'process_for_read_only_rootfs; ', '', d)}"

inherit avb-dm-verity
# The following is needed only if chained
AVB_DMVERITY_SIGNINING_KEY = "testkey_rsa4096.pem"
AVB_DMVERITY_SIGNINING_ALGORITHM = "SHA256_RSA4096"
AVB_DMVERITY_PARTITON_SIZE = "${DEVICE_PROPERTY_SYSTEM_PARTITION_SIZE}"
AVB_DM_VERITY_PARTITON_NAME = "system"
24 changes: 16 additions & 8 deletions recipes-core/images/core-image-minimal.bbappend
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ IMAGE_INSTALL_append = "\
${@bb.utils.contains("DISTRO_FEATURES", "nand", "mtd-utils-ubifs", "", d)} \
"

#AVB with DM-verity
AVB_DM_VERITY = '${@bb.utils.contains('DISTRO_FEATURES', 'dm-verity', bb.utils.contains('DISTRO_FEATURES', 'AVB', 'true', 'False' ,d), 'False', d)}'

IMAGE_INSTALL_append += '${@'python3 avbtool-dm-verity' if AVB_DM_VERITY == 'true' else ''}'
#IMAGE_INSTALL_append_aarch64 = "\
# kernel-modules \
# gpu \
Expand Down Expand Up @@ -91,19 +95,23 @@ IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("DISTRO_FEATURES", "syst

deploy_verity_hash() {
if [ -f ${DEPLOY_DIR_IMAGE}/${DM_VERITY_IMAGE}.${DM_VERITY_IMAGE_TYPE}.verity.env ]; then
bbnote "install -D -m 0644 ${DEPLOY_DIR_IMAGE}/${DM_VERITY_IMAGE}.${DM_VERITY_IMAGE_TYPE}.verity.env \
${IMAGE_ROOTFS}/${datadir}/system-dm-verity.env"
install -D -m 0644 ${DEPLOY_DIR_IMAGE}/${DM_VERITY_IMAGE}.${DM_VERITY_IMAGE_TYPE}.verity.env \
${IMAGE_ROOTFS}/${datadir}/system-dm-verity.env
if [ "${AVB_DM_VERITY}" != "true" ]; then
bbnote "install -D -m 0644 ${DEPLOY_DIR_IMAGE}/${DM_VERITY_IMAGE}.${DM_VERITY_IMAGE_TYPE}.verity.env \
${IMAGE_ROOTFS}/${datadir}/system-dm-verity.env"
install -D -m 0644 ${DEPLOY_DIR_IMAGE}/${DM_VERITY_IMAGE}.${DM_VERITY_IMAGE_TYPE}.verity.env \
${IMAGE_ROOTFS}/${datadir}/system-dm-verity.env
fi
else
bberror "Cannot find ${DEPLOY_DIR_IMAGE}/${DM_VERITY_IMAGE}.${DM_VERITY_IMAGE_TYPE}.verity.env"
fi

if [ -f ${DEPLOY_DIR_IMAGE}/${VENDOR_DM_VERITY_IMAGE}.${DM_VERITY_IMAGE_TYPE}.verity.env ]; then
bbnote " install -D -m 0644 ${DEPLOY_DIR_IMAGE}/${VENDOR_DM_VERITY_IMAGE}.${DM_VERITY_IMAGE_TYPE}.verity.env \
${IMAGE_ROOTFS}/${datadir}/vendor-dm-verity.env"
install -D -m 0644 ${DEPLOY_DIR_IMAGE}/${VENDOR_DM_VERITY_IMAGE}.${DM_VERITY_IMAGE_TYPE}.verity.env \
${IMAGE_ROOTFS}/${datadir}/vendor-dm-verity.env
if [ "${AVB_DM_VERITY}" != "true" ]; then
bbnote " install -D -m 0644 ${DEPLOY_DIR_IMAGE}/${VENDOR_DM_VERITY_IMAGE}.${DM_VERITY_IMAGE_TYPE}.verity.env \
${IMAGE_ROOTFS}/${datadir}/vendor-dm-verity.env"
install -D -m 0644 ${DEPLOY_DIR_IMAGE}/${VENDOR_DM_VERITY_IMAGE}.${DM_VERITY_IMAGE_TYPE}.verity.env \
${IMAGE_ROOTFS}/${datadir}/vendor-dm-verity.env
fi
else
bberror "Cannot find ${DEPLOY_DIR_IMAGE}/${VENDOR_DM_VERITY_IMAGE}.${DM_VERITY_IMAGE_TYPE}.verity.env"
fi
Expand Down
35 changes: 29 additions & 6 deletions recipes-core/images/vbmeta-image.bb
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,40 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/../meta-meson/license/AMLOGIC;md5=6c70138

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

DOLBY_PROP = " --prop dovi_hash:3cd93647bdd864b4ae1712d57a7de3153e3ee4a4dfcfae5af8b1b7d999b93c5a "

SRC_URI = "file://testkey_rsa2048.pem"
DEPENDS += "avb-native python3-native avbkey-native"
DM_VERITY_SUPPORT = "${@bb.utils.contains('DISTRO_FEATURES', 'dm-verity', 'true', 'false', d)}"
CHAINED_PARTITION_SUPPORT = "${@bb.utils.contains('DISTRO_FEATURES', 'AVB_chained_partition', 'true', 'false', d)}"
AVB_DM_VERITY_SYSTEM_PARTITON_NAME = "system"
AVB_DM_VERITY_VENDOR_PARTITON_NAME = "vendor"
AVB_DM_VERITY_SYSTEM_PARTITON_PUBKEY = "testkey_rsa4096.avbpubkey"
AVB_DM_VERITY_VENDOR_PARTITON_PUBKEY = "testkey_rsa4096.avbpubkey"

AVB_VBMETA_RSA_KEY = "testkey_rsa2048.pem"
AVB_VBMETA_ALGORITHM = "SHA256_RSA2048"

DEPENDS += "avb-native python3-native"
SIGN_VBMETA = " --key ${STAGING_DIR_NATIVE}/${sysconfdir_native}/${AVB_VBMETA_RSA_KEY} --algorithm ${AVB_VBMETA_ALGORITHM} --padding_size 4096 "
ADD_KERNEL_AVB = " --include_descriptors_from_image ${DEPLOY_DIR_IMAGE}/boot.img "
ADD_SYSTEM_AVB_DM_VERITY = " --include_descriptors_from_image ${DEPLOY_DIR_IMAGE}/${DM_VERITY_IMAGE}-${MACHINE}.ext4 "
ADD_VENDOR_AVB_DM_VERITY = " --include_descriptors_from_image ${DEPLOY_DIR_IMAGE}/${VENDOR_DM_VERITY_IMAGE}-${MACHINE}.ext4 "

CHAIN_SYSTEM_AVB_DM_VERITY = " --chain_partition ${AVB_DM_VERITY_SYSTEM_PARTITON_NAME}:${DEVICE_PROPERTY_SYSTEM_ROLLBACK_LOCATION}:${STAGING_DIR_NATIVE}/${sysconfdir_native}/${AVB_DM_VERITY_SYSTEM_PARTITON_PUBKEY} "
CHAIN_VENDOR_AVB_DM_VERITY = " --chain_partition ${AVB_DM_VERITY_VENDOR_PARTITON_NAME}:${DEVICE_PROPERTY_VENDOR_ROLLBACK_LOCATION}:${STAGING_DIR_NATIVE}/${sysconfdir_native}/${AVB_DM_VERITY_VENDOR_PARTITON_PUBKEY} "

do_compile() {
install -d ${DEPLOY_DIR_IMAGE}
#if boot.img already has hash_footer, avbtool won't add again, so don't need erase hash_footer first
avbtool add_hash_footer --image ${DEPLOY_DIR_IMAGE}/boot.img --partition_size 67108864 --partition_name boot
avbtool make_vbmeta_image --output ${DEPLOY_DIR_IMAGE}/vbmeta.img --key ${WORKDIR}/testkey_rsa2048.pem --prop dovi_hash:3cd93647bdd864b4ae1712d57a7de3153e3ee4a4dfcfae5af8b1b7d999b93c5a --algorithm SHA256_RSA2048 --include_descriptors_from_image ${DEPLOY_DIR_IMAGE}/boot.img --padding_size 4096 --rollback_index 0
install -d ${DEPLOY_DIR_IMAGE}
#if boot.img already has hash_footer, avbtool won't add again, so don't need erase hash_footer first
avbtool add_hash_footer --image ${DEPLOY_DIR_IMAGE}/boot.img --partition_size 67108864 --partition_name boot
if [ "${DM_VERITY_SUPPORT}" = "true" ]; then
if [ "${CHAINED_PARTITION_SUPPORT}" = "true" ]; then
avbtool make_vbmeta_image --output ${DEPLOY_DIR_IMAGE}/vbmeta.img ${SIGN_VBMETA} ${DOLBY_PROP} ${ADD_KERNEL_AVB} ${CHAIN_SYSTEM_AVB_DM_VERITY} ${CHAIN_VENDOR_AVB_DM_VERITY} --rollback_index 0
else
avbtool make_vbmeta_image --output ${DEPLOY_DIR_IMAGE}/vbmeta.img ${SIGN_VBMETA} ${DOLBY_PROP} ${ADD_KERNEL_AVB} ${ADD_SYSTEM_AVB_DM_VERITY} ${ADD_VENDOR_AVB_DM_VERITY} --rollback_index 0
fi
else
avbtool make_vbmeta_image --output ${DEPLOY_DIR_IMAGE}/vbmeta.img ${SIGN_VBMETA} ${DOLBY_PROP} ${ADD_KERNEL_AVB} --rollback_index 0
fi
}

do_compile[depends]="core-image-minimal:do_image_complete"
Expand Down
6 changes: 6 additions & 0 deletions recipes-core/images/vendor-image.bb
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,9 @@ DM_VERITY_IMAGE = "vendor-image"
DM_VERITY_IMAGE_TYPE = "ext4"
STAGING_VERITY_DIR = "${DEPLOY_DIR_IMAGE}"

inherit avb-dm-verity
# The following is needed only if chained
AVB_DMVERITY_SIGNINING_KEY = "testkey_rsa4096.pem"
AVB_DMVERITY_SIGNINING_ALGORITHM = "SHA256_RSA4096"
AVB_DMVERITY_PARTITON_SIZE = "${DEVICE_PROPERTY_VENDOR_PARTITION_SIZE}"
AVB_DM_VERITY_PARTITON_NAME = "vendor"
28 changes: 26 additions & 2 deletions recipes-core/initrdscripts/files/init-meson.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ DM_VERITY_STATUS="disabled"
DM_DEV_COUNT=0
ACTIVE_SLOT=""
root_fstype="ext4"
VBMETA_DEVICE=""

# Copied from initramfs-framework. The core of this script probably should be
# turned into initramfs-framework modules to reduce duplication.
Expand Down Expand Up @@ -61,6 +62,8 @@ read_args() {
androidboot.slot_suffix=*)
ACTIVE_SLOT=$optarg
ROOT_DEVICE=${ROOT_DEVICE}${ACTIVE_SLOT};;
androidboot.vbmeta.device=*)
VBMETA_DEVICE=$optarg ;;
LABEL=*)
label=$optarg ;;
video=*)
Expand Down Expand Up @@ -267,8 +270,29 @@ data_ext4_handle() {

dm_verity_setup() {
echo "setup dm-verity for ${1} partition(${2}) mount to ${3}"
if [ -f /usr/share/${1}-dm-verity.env ]; then
. /usr/share/${1}-dm-verity.env
VERITY_ENV=/usr/share/${1}-dm-verity.env

VBMETA_DEVICE_REAL=${VBMETA_DEVICE}${ACTIVE_SLOT}
# Change /dev/block/ to /dev/
if [ ! -b ${VBMETA_DEVICE_REAL} ]; then
VBMETA_DEVICE_REAL=`echo ${VBMETA_DEVICE_REAL} | sed "s/\/block\//\//g"`
fi
if [ -b "${VBMETA_DEVICE_REAL}" ]; then
mkdir -p /tmp
AVB_DM_TOOL=/usr/bin/avbtool-dm-verity.py
if [ -x ${AVB_DM_TOOL} ]; then
VERITY_ENV=/tmp/${1}-dm-verity.env
avbtool-dm-verity.py print_partition_verity --image "${VBMETA_DEVICE_REAL}" --partition_name "${1}" --active_slot "${ACTIVE_SLOT}" --output "$VERITY_ENV"
if [ "$?" != "0" ]; then
echo "failed to read vbmeta device from ${VBMETA_DEVICE_REAL}"
fi
fi
fi

echo "verity env is $VERITY_ENV"

if [ -f $VERITY_ENV ]; then
. $VERITY_ENV
veritysetup --data-block-size=${DATA_BLOCK_SIZE} --hash-offset=${DATA_SIZE} \
create ${1} ${2} ${2} ${ROOT_HASH}
if [ $? = 0 ]; then
Expand Down
File renamed without changes.
20 changes: 20 additions & 0 deletions recipes-security/avb/avbkey-native_1.0.bb
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
DESCRIPTION = "Android Verified Boot 2.0 Test Keys"
LICENSE = "APACHE"
LIC_FILES_CHKSUM = "file://${COREBASE}/../meta-meson/license/APACHE;md5=b8228f2369d92593f53f0a0685ebd3c0"

SRC_URI += "file://testkey_rsa2048.pem"
SRC_URI += "file://testkey_rsa4096.avbpubkey"
SRC_URI += "file://testkey_rsa4096.pem"

inherit native
S = "${WORKDIR}"

do_configure[noexec] = "1"
do_compile[noexec] = "1"

do_install() {
install -d ${D}${sysconfdir}
install -m 0755 ${S}/testkey_rsa2048.pem ${D}${sysconfdir}
install -m 0755 ${S}/testkey_rsa4096.pem ${D}${sysconfdir}
install -m 0755 ${S}/testkey_rsa4096.avbpubkey ${D}${sysconfdir}
}
16 changes: 16 additions & 0 deletions recipes-security/avb/avbtool-dm-verity_1.0.bb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
DESCRIPTION = "Android Verified Boot 2.0 with Linux DM-Verity support"
LICENSE = "APACHE"
LIC_FILES_CHKSUM = "file://${COREBASE}/../meta-meson/license/APACHE;md5=b8228f2369d92593f53f0a0685ebd3c0"

SRC_URI = "file://avbtool-dm-verity.py"
S = "${WORKDIR}"

do_configure[noexec] = "1"
do_compile[noexec] = "1"

do_install() {
install -d ${D}${bindir}
install -m 0755 ${S}/avbtool-dm-verity.py ${D}${bindir}
}

BBCLASSEXTEND = "native"
Loading

0 comments on commit aab8ce5

Please sign in to comment.