fix: speed up decryption

with_status
WorldObservationLog 4 months ago
parent 0d01836d1e
commit 31d3498d88
  1. 9
      src/decrypt.py

@ -24,12 +24,12 @@ async def decrypt(info: SongInfo, keys: list[str], manifest: Datum, device: Devi
else:
logger.info(f"Using device {device.serial} to decrypt song: {manifest.attributes.artistName} - {manifest.attributes.name}")
try:
reader, writer = await asyncio.open_connection(device.host, device.fridaPort)
reader, writer = await asyncio.open_connection(device.host, device.fridaPort, limit=2**14)
except ConnectionRefusedError:
logger.warning(f"Failed to connect to device {device.serial}, re-injecting")
device.restart_inject_frida()
raise RetryableDecryptException
decrypted = bytes()
decrypted = []
last_index = 255
for sample in info.samples:
if last_index != sample.descIndex:
@ -59,10 +59,11 @@ async def decrypt(info: SongInfo, keys: list[str], manifest: Datum, device: Devi
else:
logger.error(f"Failed to decrypt song: {manifest.attributes.artistName} - {manifest.attributes.name}")
raise DecryptException
decrypted += result
now += 1
decrypted.append(result)
writer.write(bytes([0, 0, 0, 0]))
writer.close()
return decrypted
return bytes().join(decrypted)
async def decrypt_sample(writer: asyncio.StreamWriter, reader: asyncio.StreamReader, sample: SampleInfo) -> bytes:

Loading…
Cancel
Save