Compare commits

...

2 commits
v1.0 ... master

Author SHA1 Message Date
WessellUrdata
4c63f728aa Added "if name == main" 2023-01-12 20:00:44 +08:00
Tim
aac8291219
Added Usage section 2023-01-06 12:04:06 +08:00
2 changed files with 33 additions and 25 deletions

View file

@ -12,6 +12,14 @@ Other than that, I've created this repository to document how patching out verit
An explanation of how the script works can be found [here](https://github.com/WessellUrdata/vbmeta-disable-verification/wiki/Explanation:-How-patching-vbmeta-works).
## Usage
Download the script from [Releases](https://github.com/WessellUrdata/vbmeta-disable-verification/releases).
```bash
$ python ./bvqc3.py <filename>
```
## Credits
Credits to [@libxzr](https://github.com/libxzr) for creating the [original repo](https://github.com/libxzr/vbmeta-disable-verification) and [the blog post about patching vbmeta.img](https://blog.xzr.moe/archives/226/).

View file

@ -10,35 +10,35 @@ FLAGS_OFFSET = 123
FLAGS_TO_SET = b'\x03'
### main program
if __name__ == "__main__":
# if an argument is not provided
if len(sys.argv) != 2:
sys.exit("Usage: python ./" + os.path.basename(__file__) + " <vbmeta-image>")
# if an argument is not provided
if len(sys.argv) != 2:
sys.exit("Usage: python ./" + os.path.basename(__file__) + " <vbmeta-image>")
# try reading the file with read/write to make sure it exists
FILE = sys.argv[1]
# try reading the file with read/write to make sure it exists
FILE = sys.argv[1]
try:
fd = os.open(FILE, os.O_RDWR)
except OSError:
sys.exit("Error reading file: " + FILE + ". File not modified. Exiting...")
try:
fd = os.open(FILE, os.O_RDWR)
except OSError:
sys.exit("Error reading file: " + FILE + ". File not modified. Exiting...")
# making sure it's a vbmeta image by reading the magic bytes at the start of the file
magic = os.read(fd, AVB_MAGIC_LEN)
# making sure it's a vbmeta image by reading the magic bytes at the start of the file
magic = os.read(fd, AVB_MAGIC_LEN)
if (magic != AVB_MAGIC):
fd.close()
sys.exit("Error: The provided image is not a valid vbmeta image. File not modified. Exiting...")
if (magic != AVB_MAGIC):
fd.close()
sys.exit("Error: The provided image is not a valid vbmeta image. File not modified. Exiting...")
# set the disable-verity and disable-verification flags at offset 123
try:
os.lseek(fd, FLAGS_OFFSET, os.SEEK_SET)
os.write(fd, FLAGS_TO_SET)
except OSError:
fd.close()
sys.exit("Error: Failed when patching the vbmeta image. Exiting...")
# set the disable-verity and disable-verification flags at offset 123
try:
os.lseek(fd, FLAGS_OFFSET, os.SEEK_SET)
os.write(fd, FLAGS_TO_SET)
except OSError:
fd.close()
sys.exit("Error: Failed when patching the vbmeta image. Exiting...")
# end of program
os.close(fd)
print("Patching successful.")
# end of program
os.close(fd)
print("Patching successful.")