From 9e6b8f2ab535fbc701a99dcdbbc55d0455826580 Mon Sep 17 00:00:00 2001 From: cfig Date: Mon, 4 Jun 2018 22:32:39 +0800 Subject: [PATCH] do strict checking before extracting 'args.base' Fixes #18, 'unpack' and 'pack' works, but seems Moto X image has private data fields, which can not be recognized --- .gitattributes | 1 + bbootimg/src/main/kotlin/Parser.kt | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index 52e14cd..0330f86 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ bouncycastle/* linguist-vendored boot_signer/* linguist-vendored mkbootfs/* linguist-vendored +avb/* linguist-vendored diff --git a/bbootimg/src/main/kotlin/Parser.kt b/bbootimg/src/main/kotlin/Parser.kt index 22c5163..e7baaf8 100644 --- a/bbootimg/src/main/kotlin/Parser.kt +++ b/bbootimg/src/main/kotlin/Parser.kt @@ -123,7 +123,10 @@ class Parser { info.recoveryDtboPosition = info.secondBootloaderPosition + info.secondBootloaderLength + getPaddingSize(info.secondBootloaderLength, args.pageSize) //adjust args - if (args.kernelOffset > Int.MAX_VALUE) { + if (args.kernelOffset > Int.MAX_VALUE + && args.ramdiskOffset > Int.MAX_VALUE + && args.secondOffset > Int.MAX_VALUE + && args.dtboOffset > Int.MAX_VALUE) { args.base = Int.MAX_VALUE + 1L args.kernelOffset -= args.base args.ramdiskOffset -= args.base