aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbackend/magiback17
-rwxr-xr-xbackend/raw_write.py7
-rwxr-xr-xlib/isodumper.py5
3 files changed, 28 insertions, 1 deletions
diff --git a/backend/magiback b/backend/magiback
index 904afcf..01a730c 100755
--- a/backend/magiback
+++ b/backend/magiback
@@ -36,6 +36,9 @@ class Isodumper(raw_write.Dumper):
<arg type='s' name='target' direction='in'/>
<arg type='s' name='source' direction='in'/>
</method>
+ <method name='do_persistence'>
+ <arg type='s' name='target' direction='in'/>
+ </method>
<method name='get_sum'>
<arg type='s' name='source' direction='in'/>
</method>
@@ -67,6 +70,9 @@ class Isodumper(raw_write.Dumper):
self.sum_check = ""
self.sum_check_searched = False
self.signature_checked = False
+ self.writing_perm = False
+ self.writing_target = ""
+
def do_write(self,source, target, size, dbus_context):
self.finished.clear()
@@ -74,10 +80,21 @@ class Isodumper(raw_write.Dumper):
self.thread = threading.Thread(target=self._do_write, args=(source, target, size, ))
self.thread.start()
logging.debug("Writing thread started")
+ self.writing_perm = True
+ self.writing_target = target
else:
self.return_message = "Access denied"
self.finished.set()
+ def do_persistence(self, target):
+ self.finished.clear()
+ if self.writing_perm and self.writing_target == target :
+ self._do_persistence(target)
+ else:
+ self.return_message = "Access denied"
+ self.writing_perm = False
+ self.writing_target = ""
+
@property
def done(self):
return self.finished.wait(1)
diff --git a/backend/raw_write.py b/backend/raw_write.py
index d9a5a19..b8f307d 100755
--- a/backend/raw_write.py
+++ b/backend/raw_write.py
@@ -30,7 +30,7 @@
import os
import io
import gettext
-from subprocess import call
+from subprocess import call, Popen, PIPE
import hashlib
import gnupg
@@ -221,6 +221,11 @@ class Dumper(object):
self.return_state = True
self.finished.set()
+ def _do_persistence(self, target):
+ p = Popen(["fdisk",target], stdin = PIPE)
+ p.communicate(input=b'n\np\n3\n\n\nw\n')
-rw-r--r--
kernel/list_modules.pm3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/list_modules.pm b/kernel/l
@@ -320,6 +320,11 @@ class IsoDumper(object):
self.progress.setEnabled()
self.progress.setValue(100)
self.logger(message)
+ # Add persistent parti
@@ -332,7 +332,8 @@ our %l = (
other => [
qw(defxx ide-floppy ide-tape loop lp nbd sg st),
qw(parport_pc parport_serial),
- qw(btaudio mmc_block),
+ qw(btaudio),
+ qw(mmc_block sdhci-acpi), # eMMC
'cryptoloop',
if_(arch() =~ /sparc/, 'openprom'),
-- id=cgit -->