From patchwork Thu Sep 3 17:19:03 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sven Eckelmann X-Patchwork-Id: 514213 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (arrakis.dune.hu [78.24.191.176]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id DC9E91402A9 for ; Fri, 4 Sep 2015 03:19:22 +1000 (AEST) Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id F2BBD28BFFB; Thu, 3 Sep 2015 19:18:14 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on arrakis.dune.hu X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00, T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.2 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id F3EA928BE25 for ; Thu, 3 Sep 2015 19:18:10 +0200 (CEST) X-policyd-weight: using cached result; rate: -7.6 Received: from v3-1039.vlinux.de (narfation.org [79.140.41.39]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Thu, 3 Sep 2015 19:18:10 +0200 (CEST) Received: from sven-desktop.home.narfation.org (x5d84a95d.dyn.telefonica.de [93.132.169.93]) by v3-1039.vlinux.de (Postfix) with ESMTPSA id A91F31100B2; Thu, 3 Sep 2015 19:19:09 +0200 (CEST) From: Sven Eckelmann To: openwrt-devel@lists.openwrt.org Date: Thu, 3 Sep 2015 19:19:03 +0200 Message-Id: <1441300743-22290-1-git-send-email-sven@open-mesh.com> X-Mailer: git-send-email 2.5.1 Cc: Sven Eckelmann , Marek Lindner Subject: [OpenWrt-Devel] [PATCH] scripts/om-fwupgradecfg-gen.sh: Fix u-boot image md5sum check X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" The u-boot on Open Mesh devices checks the whole transfered image against a md5sum. This is stored inside the option filemd5sum inside the fwupgrade.cfg. The bootloader will not check it when this setting is missing and could therefore write invalid images to the flash. Signed-off-by: Sven Eckelmann Cc: Marek Lindner --- scripts/om-fwupgradecfg-gen.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/om-fwupgradecfg-gen.sh b/scripts/om-fwupgradecfg-gen.sh index 1f899c9..ba6f9a09 100644 --- a/scripts/om-fwupgradecfg-gen.sh +++ b/scripts/om-fwupgradecfg-gen.sh @@ -54,6 +54,7 @@ ROOTFS_FLASH_ADDR=$(addr=$(($KERNEL_FLASH_ADDR + ($KERNEL_PART_SIZE * 1024))); p ROOTFS_SIZE=$(stat -c%s "$ROOTFS_PATH") ROOTFS_CHECK_BLOCKS=$((($ROOTFS_SIZE / $CHECK_BS) - $MD5_SKIP_BLOCKS)) ROOTFS_MD5=$(md5=$(dd if=$ROOTFS_PATH bs=$CHECK_BS count=$ROOTFS_CHECK_BLOCKS 2>&- | md5sum); echo ${md5%% *}) +ROOTFS_MD5_FULL=$(md5=$(md5sum $ROOTFS_PATH); echo ${md5%% *}) ROOTFS_CHECK_SIZE=$(printf '0x%x' $(($ROOTFS_CHECK_BLOCKS * $CHECK_BS))) ROOTFS_PART_SIZE=$(($MAX_PART_SIZE - $KERNEL_PART_SIZE)) @@ -61,6 +62,7 @@ cat << EOF > $CFG_OUT [vmlinux] filename=kernel md5sum=$KERNEL_MD5 +filemd5sum=$KERNEL_MD5 flashaddr=$KERNEL_FLASH_ADDR checksize=0x0 cmd_success=setenv bootseq 1,2; setenv kernel_size_1 $KERNEL_PART_SIZE; saveenv @@ -69,6 +71,7 @@ cmd_fail=reset [rootfs] filename=rootfs md5sum=$ROOTFS_MD5 +filemd5sum=$ROOTFS_MD5_FULL flashaddr=$ROOTFS_FLASH_ADDR checksize=$ROOTFS_CHECK_SIZE cmd_success=setenv bootseq 1,2; setenv kernel_size_1 $KERNEL_PART_SIZE; setenv rootfs_size_1 $ROOTFS_PART_SIZE; saveenv