[Feature][TEST]flashimage add '-s' options

Change-Id: Ic46745ce9edb8744eb8c1792b46e1cb391e153b1
diff --git a/meta/meta-mediatek-mt2735/recipes-devtools/flashtool/files/auto2735evb-ivt-main/flashproc.py b/meta/meta-mediatek-mt2735/recipes-devtools/flashtool/files/auto2735evb-ivt-main/flashproc.py
index 714a0ad..f1fd618 100755
--- a/meta/meta-mediatek-mt2735/recipes-devtools/flashtool/files/auto2735evb-ivt-main/flashproc.py
+++ b/meta/meta-mediatek-mt2735/recipes-devtools/flashtool/files/auto2735evb-ivt-main/flashproc.py
@@ -134,6 +134,55 @@
                 ['fastboot', 'flash', 'vbmeta_b', 'vbmeta.img']]
 }
 
+userdataprocedures = {
+    # product   : fastboot args
+    'DEFAULT': [['fbWait'],
+                ['fastboot', 'flash', 'EMPTY', 'hsm_bl.img'],
+                ['fastboot', 'continue'],
+                ['fbWait'],
+                ['fastboot', 'flash', 'EMPTY', 'bl2.img'],
+                ['fastboot', 'continue'],
+                ['fbWait'],
+                ['fastboot', 'flash', 'download:tz', 'tee.img'],
+                ['fastboot', 'flash', 'download:bl33', 'bl33.img'],
+                ['fastboot', 'oem', 'continue'],
+                ['fbWait'],
+                ['fastboot', 'erase', 'bl2'],
+                ['fastboot', 'flash', 'bl2', 'bl2.img'],
+                ['fastboot', 'erase', 'bl33'],
+                ['fastboot', 'flash', 'bl33', 'bl33.img'],
+                ['fastboot', 'erase', 'dtbo'],
+                ['fastboot', 'flash', 'dtbo', 'combo.dtbo'],
+                ['fastboot', 'erase', 'proinfo'],
+                ['fastboot', 'flash', 'proinfo', 'sncfg.ubi'],
+                ['fastboot', 'erase', 'boot_a'],
+                ['fastboot', 'flash', 'boot_a', 'boot.img'],
+                ['fastboot', 'erase', 'boot_b'],
+                ['fastboot', 'flash', 'boot_b', 'boot.img'],
+                ['fastboot', 'erase', 'system_a'],
+                ['fastboot', 'flash', 'system_a', 'system.img'],
+                ['fastboot', 'erase', 'system_b'],
+                ['fastboot', 'flash', 'system_b', 'system.img'],
+                ['fastboot', 'erase', 'md1img_a'],
+                ['fastboot', 'flash', 'md1img_a', 'md1img.img'],
+                ['fastboot', 'erase', 'md1img_b'],
+                ['fastboot', 'flash', 'md1img_b', 'md1img.img'],
+                ['fastboot', 'erase', 'md1dsp_a'],
+                ['fastboot', 'flash', 'md1dsp_a', 'md1dsp.img'],
+                ['fastboot', 'erase', 'md1dsp_b'],
+                ['fastboot', 'flash', 'md1dsp_b', 'md1dsp.img'],
+                ['fastboot', 'erase', 'tee_a'],
+                ['fastboot', 'flash', 'tee_a', 'tee.img'],
+                ['fastboot', 'erase', 'tee_b'],
+                ['fastboot', 'flash', 'tee_b', 'tee.img'],
+                ['fastboot', 'erase', 'vbmeta_a'],
+                ['fastboot', 'flash', 'vbmeta_a', 'vbmeta.img'],
+                ['fastboot', 'erase', 'vbmeta_b'],
+                ['fastboot', 'flash', 'vbmeta_b', 'vbmeta.img'],
+                ['fastboot', 'erase', 'userdata'],
+                ['fastboot', 'flash', 'userdata', 'userdata.img']]
+}
+
 # return procedure list
 def getFlashProc(product):
     try:
@@ -163,3 +212,10 @@
         return ret
     except:
         return None
+    
+def getFlashUserDataProc(product):
+    try:
+        ret = userdataprocedures[product.upper()]
+        return ret
+    except:
+        return None
diff --git a/meta/meta-mediatek-mt2735/recipes-devtools/flashtool/files/flashimage.py b/meta/meta-mediatek-mt2735/recipes-devtools/flashtool/files/flashimage.py
old mode 100644
new mode 100755
index 8f37048..557af18
--- a/meta/meta-mediatek-mt2735/recipes-devtools/flashtool/files/flashimage.py
+++ b/meta/meta-mediatek-mt2735/recipes-devtools/flashtool/files/flashimage.py
@@ -203,6 +203,8 @@
                         help='Flash boot partition')
     parser.add_argument('-t', '--test', action='store_true', default=False,
                         help='Flash test partition')
+    parser.add_argument('-s', '--userdata', action='store_true', default=False,
+                        help='Flash userdata partition')
     parser.add_argument('-v', '--verbose', action='store_true', default=False,
                         help='print more information while flashing')
     parser.add_argument('-n', '--nata', action = 'store_true', default = False,
@@ -260,6 +262,10 @@
         from flashproc import getFlashTestProc
     except:
         getFlashTestProc = getFlashProc
+    try:
+        from flashproc import getFlashUserDataProc
+    except:
+        getFlashUserDataProc = getFlashProc
 
     # check flash tools
     toolsdir = ''
@@ -289,6 +295,8 @@
         procs = getFlashBootProc(devProduct)
     if args.test:
         procs = getFlashTestProc(devProduct)
+    if args.userdata:
+        procs = getFlashUserDataProc(devProduct)
     if procs:
         if verbose:
             print('Flash procedure'.center(80))