self.device = device
total_size = device_size(device)
- if hasattr(self, 'user_partition'):
+ # find user partition and calculate its size
+ n = None
+ for i, p in enumerate(self.part_table):
+ if p['name'] == 'user':
+ n = i;
+ break
+
+ if n is not None:
self.user_size = total_size - self.reserved_space - \
reduce(lambda x, y: x + (y["size"] or 0), self.part_table, 0)
if self.user_size < 100:
logging.error(f"Not enough space for user data ({self.user_size}). Use larger storage.")
raise OSError(errno.ENOSPC, os.strerror(errno.ENOSPC), device)
- # self.user_partition counts from 0
- self.part_table[self.user_partition]["size"] = self.user_size
+ self.part_table[n]["size"] = self.user_size
self.label = Label(self.part_table, ltype)
self.binaries = self._get_binaries('binaries')
def __init__(self, device, args):
self.reserved_space = 12
- self.user_partition = 4
super().__init__(device, "dos")
class OdroidC4(InitParams, SdFusingTarget):
def __init__(self, device, args):
self.reserved_space = 12
- self.user_partition = 4
super().__init__(device, "dos")
class Rpi4Super(InitParams, SdFusingTargetAB):
def __init__(self, device, args):
self.reserved_space = 8
- self.user_partition = 4
self.update = args.update
super().__init__(device, "gpt")
self.with_super = True
def __init__(self, device, args):
self.reserved_space = 5
- self.user_partition = 4
self.update = args.update
super().__init__(device, "gpt")
def __init__(self, device, args):
self.reserved_space = 5
- self.user_partition = 4
self.update = args.update
super().__init__(device, "gpt")
]
def __init__(self, device, args):
- self.user_partition = 6
self.reserved_space = 5
self.apply_partition_sizes(args.partition_sizes)
super().__init__(device, 'gpt')
]
def __init__(self, device, args):
- self.user_partition = 6
self.reserved_space = 5
self.update = args.update
self.apply_partition_sizes(args.partition_sizes)
]
def __init__(self, device, args):
- self.user_partition = 6
self.reserved_space = 5
self.update = args.update
super().__init__(device, 'gpt')
]
def __init__(self, device, args):
- self.user_partition = 4
self.reserved_space = 5
self.update = args.update
self.apply_partition_sizes(args.partition_sizes)
def __init__(self, device, args):
self.reserved_space = 8
- self.user_partition = 4
self.update = args.update
super().__init__(device, 'gpt')
self.with_super = True
]
def __init__(self, device, args):
- self.user_partition = 6
self.reserved_space = 5
self.update = args.update
self.apply_partition_sizes(args.partition_sizes)