Merge "ginstall: add flash unlock support for gflt"
diff --git a/ginstall/ginstall.py b/ginstall/ginstall.py
index 983d76c..5db5493 100755
--- a/ginstall/ginstall.py
+++ b/ginstall/ginstall.py
@@ -346,6 +346,13 @@
return subprocess.call(cmd)
+def UnlockMtd(mtddevname):
+ """Unlocks an mtd partition."""
+ VerbosePrint('Unlocking flash partition %r\n', mtddevname)
+ cmd = ['flash_unlock', mtddevname]
+ return subprocess.call(cmd)
+
+
def Nandwrite(f, mtddevname):
"""Write file to NAND flash using nandwrite."""
cmd = ['nandwrite', '--quiet', '--markbad', mtddevname]
@@ -415,6 +422,9 @@
"""Write an image to an mtd device."""
if not isinstance(f, FileWithSecureHash):
f = FileWithSecureHash(f, None)
+ if GetPlatform().startswith('GFLT'):
+ if UnlockMtd(mtddevname):
+ raise IOError('Flash unlocking failed.')
if EraseMtd(mtddevname):
raise IOError('Flash erase failed.')
VerbosePrint('Writing to mtd partition %r\n', mtddevname)
diff --git a/ginstall/install_test.sh b/ginstall/install_test.sh
index 38064f5..4338bac 100755
--- a/ginstall/install_test.sh
+++ b/ginstall/install_test.sh
@@ -182,7 +182,9 @@
expected="\
psback
logos ginstall
+flash_unlock ${tmpdir}/dev/mtd6
flash_erase --quiet ${tmpdir}/dev/mtd6 0 0
+flash_unlock ${tmpdir}/dev/mtd0
flash_erase --quiet ${tmpdir}/dev/mtd0 0 0
hnvram -q -w ACTIVATED_KERNEL_NAME=kernel0"
diff --git a/ginstall/testdata/bin/flash_unlock b/ginstall/testdata/bin/flash_unlock
new file mode 120000
index 0000000..3c2bde7
--- /dev/null
+++ b/ginstall/testdata/bin/flash_unlock
@@ -0,0 +1 @@
+write_args_to_file
\ No newline at end of file