mirror of https://git.48k.eu/ogclient
winreg: move disk id functions into disk.py
Move uuid_to_bytes, get_disk_id_bytes and get_part_id_bytes from winreg.py to the more fitting location disk.pymaster v1.3.2-27
parent
40e4545bb7
commit
24568356bc
|
@ -11,6 +11,7 @@ import logging
|
|||
import shlex
|
||||
import subprocess
|
||||
import json
|
||||
from uuid import UUID
|
||||
from src.log import OgError
|
||||
|
||||
import fdisk
|
||||
|
@ -190,3 +191,38 @@ def get_partition_start_offset(disk, partition):
|
|||
raise OgError(f'Error while trying to parse sfdisk: {e}') from e
|
||||
|
||||
return start_offset
|
||||
|
||||
|
||||
def uuid_to_bytes(uuid):
|
||||
uuid = uuid.replace('-', '')
|
||||
|
||||
group0 = f'{uuid[6:8]}{uuid[4:6]}{uuid[2:4]}{uuid[0:2]}'
|
||||
group1 = f'{uuid[10:12]}{uuid[8:10]}'
|
||||
group2 = f'{uuid[14:16]}{uuid[12:14]}'
|
||||
group3 = uuid[16:20]
|
||||
group4 = uuid[20:32]
|
||||
res = f'{group0}-{group1}-{group2}-{group3}-{group4}'
|
||||
return UUID(res).bytes
|
||||
|
||||
|
||||
def get_disk_id_bytes(disk):
|
||||
from src.utils.uefi import is_uefi_supported
|
||||
disk_id = get_disk_id(disk)
|
||||
|
||||
if is_uefi_supported():
|
||||
return uuid_to_bytes(disk_id)
|
||||
|
||||
return bytes.fromhex(disk_id)[::-1]
|
||||
|
||||
|
||||
def get_part_id_bytes(disk, partition):
|
||||
from src.utils.uefi import is_uefi_supported
|
||||
if is_uefi_supported():
|
||||
part_id = get_partition_id(disk, partition)
|
||||
return uuid_to_bytes(part_id)
|
||||
|
||||
partition_start_offset = get_partition_start_offset(disk, partition)
|
||||
sector_size = get_sector_size(disk)
|
||||
byte_offset = partition_start_offset * sector_size
|
||||
byte_offset = "{0:016x}".format(byte_offset)
|
||||
return bytes.fromhex(byte_offset)[::-1]
|
||||
|
|
|
@ -10,9 +10,7 @@ import libhivexmod
|
|||
import hivex
|
||||
from enum import Enum
|
||||
from src.log import OgError
|
||||
from uuid import UUID
|
||||
from src.utils.disk import *
|
||||
from src.utils.uefi import is_uefi_supported
|
||||
|
||||
|
||||
WINDOWS_HIVES_PATH = '/Windows/System32/config'
|
||||
|
@ -102,36 +100,3 @@ def get_node_child_from_path(hive, node, path):
|
|||
child_node = get_node_child(hive, child_node, node_name)
|
||||
|
||||
return child_node
|
||||
|
||||
|
||||
def uuid_to_bytes(uuid):
|
||||
uuid = uuid.replace('-', '')
|
||||
|
||||
group0 = f'{uuid[6:8]}{uuid[4:6]}{uuid[2:4]}{uuid[0:2]}'
|
||||
group1 = f'{uuid[10:12]}{uuid[8:10]}'
|
||||
group2 = f'{uuid[14:16]}{uuid[12:14]}'
|
||||
group3 = uuid[16:20]
|
||||
group4 = uuid[20:32]
|
||||
res = f'{group0}-{group1}-{group2}-{group3}-{group4}'
|
||||
return UUID(res).bytes
|
||||
|
||||
|
||||
def get_disk_id_bytes(disk):
|
||||
disk_id = get_disk_id(disk)
|
||||
|
||||
if is_uefi_supported():
|
||||
return uuid_to_bytes(disk_id)
|
||||
|
||||
return bytes.fromhex(disk_id)[::-1]
|
||||
|
||||
|
||||
def get_part_id_bytes(disk, partition):
|
||||
if is_uefi_supported():
|
||||
part_id = get_partition_id(disk, partition)
|
||||
return uuid_to_bytes(part_id)
|
||||
|
||||
partition_start_offset = get_partition_start_offset(disk, partition)
|
||||
sector_size = get_sector_size(disk)
|
||||
byte_offset = partition_start_offset * sector_size
|
||||
byte_offset = "{0:016x}".format(byte_offset)
|
||||
return bytes.fromhex(byte_offset)[::-1]
|
||||
|
|
Loading…
Reference in New Issue