diff --git a/LICENSE b/LICENSE index c651365..9b115a7 100644 --- a/LICENSE +++ b/LICENSE @@ -94,6 +94,50 @@ lptools_static: Apache License 2.0 Source not required, however, respective source is provided: https://github.com/phhusson/vendor_lptools +httools_static: MIT + + Copyright (c) 2022 capntrips + + 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. + + Source not required, however, respective source is provided: + https://github.com/capntrips/HashtreePatcher + +fec: Apache License 2.0 + + Copyright (c) 2013-2015, The Android Open Source Project + + 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. + + Source not required, however, respective source is provided: + https://android.googlesource.com/platform/system/extras/+/refs/tags/android-12.1.0_r5/verity/fec/ + ## Optional Binary Licenses: diff --git a/META-INF/com/google/android/updater-script b/META-INF/com/google/android/updater-script index 3d6a595..ad31cce 100644 --- a/META-INF/com/google/android/updater-script +++ b/META-INF/com/google/android/updater-script @@ -3,4 +3,4 @@ # Dummy file; update-binary is a shell script (DO NOT CHANGE) # # -# AK_BASE_VERSION=20220607 +# AK_BASE_VERSION=20220608 diff --git a/tools/ak3-core.sh b/tools/ak3-core.sh index c0a78f9..a64f2da 100755 --- a/tools/ak3-core.sh +++ b/tools/ak3-core.sh @@ -415,7 +415,7 @@ flash_boot() { # flash_generic flash_generic() { - local file img imgblock isro path; + local avb avbblock file flags img imgblock isro path; cd $home; for file in $1 $1.img; do @@ -438,6 +438,27 @@ flash_generic() { abort "$1 partition could not be found. Aborting..."; fi; if [ "$path" == "/dev/block/mapper" ]; then + avb=$($bin/httools_static avb $1); + [ $? == 0 ] || abort "Failed to parse fstab entry for $1. Aborting..."; + if [ "$avb" ]; then + flags=$($bin/httools_static disable-flags); + [ $? == 0 ] || abort "Failed to parse top-level vbmeta. Aborting..."; + if [ "$flags" == "enabled" ]; then + [ "$1" == "vendor_dlkm" -a "$avb" == "vbmeta" ] || abort "Unable to patch $1 on $avb. Aborting ..."; + ui_print " " "dm-verity detected! Patching vbmeta..."; + for path in /dev/block/bootdevice/by-name /dev/block/mapper; do + for file in $avb $avb$slot; do + if [ -e $path/$file ]; then + avbblock=$path/$file; + break 2; + fi; + done; + done; + cd $bin; + $bin/httools_static patch $home/$img $avbblock || abort "Failed to patch $1 on $avb. Aborting..."; + cd $home; + fi + fi $bin/lptools_static remove $1_ak3; $bin/lptools_static create $1_ak3 $(wc -c < $img) || abort "Creating $1_ak3 failed. Aborting..."; $bin/lptools_static unmap $1_ak3 || abort "Unmapping $1_ak3 failed. Aborting..."; diff --git a/tools/fec b/tools/fec new file mode 100755 index 0000000..5507b6e Binary files /dev/null and b/tools/fec differ diff --git a/tools/httools_static b/tools/httools_static new file mode 100755 index 0000000..cbb02bd Binary files /dev/null and b/tools/httools_static differ