From 3b18d4a448c6b35d3dcebd7af9c66ce54170d93d Mon Sep 17 00:00:00 2001 From: Jef Driesen Date: Sun, 21 Aug 2016 12:20:25 +0200 Subject: [PATCH] Improve the default layout detection. Select the default memory layout for unsupported devices based on the amount of memory indicated in the version string. This allows to download a full memory dump. --- src/oceanic_atom2.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/oceanic_atom2.c b/src/oceanic_atom2.c index cd6b701..93d719d 100644 --- a/src/oceanic_atom2.c +++ b/src/oceanic_atom2.c @@ -676,6 +676,17 @@ oceanic_atom2_device_open2 (dc_device_t **out, dc_context_t *context, const char } else { WARNING (context, "Unsupported device detected!"); device->base.layout = &oceanic_default_layout; + if (memcmp(device->base.version + 12, "256K", 4) == 0) { + device->base.layout = &oceanic_atom1_layout; + } else if (memcmp(device->base.version + 12, "512K", 4) == 0) { + device->base.layout = &oceanic_default_layout; + } else if (memcmp(device->base.version + 12, "1024", 4) == 0) { + device->base.layout = &oceanic_oc1_layout; + } else if (memcmp(device->base.version + 12, "2048", 4) == 0) { + device->base.layout = &hollis_tx1_layout; + } else { + device->base.layout = &oceanic_default_layout; + } } *out = (dc_device_t*) device;