[MTK FP]用Python提取模拟器文件
MTK Feature Phone平台,一般大家会分工协作,GUI负责图片/UI负责Menutree/Coder负责编码等等,这样GUI/UI等部门就不会有模拟器,在单板未到位时看不到手机界面的效果,这个时候,一般作为Coder我们需要copy模拟器给其他部门。
下面介绍一种结合pytho和bat来在windows环境下copy模拟器文件的方法,目前只在MTK 11B的一个分支验证过是可以成功的,如果是不同分支,请修改程序中copy的文件夹和文件列表。源代码如下,程序应放在代码主目录\mtk_6250\的上一层目录:
# -*- coding: utf-8 -*-
# It is ok at python-3.3.1rc1.msi installer condition.
import os
import re
def delete_dir(directory):
copy_command = ("rmdir /s /q %s" % directory)
os.system(copy_command)
def copy_dirs(src_path, dst_path, list_dirs):
for directory in list_dirs:
srcDir = src_path + directory
dstDir = dst_path + directory
copy_command = ("echo d| xcopy %s %s /s /h" % (srcDir, dstDir))
#print(copy_command)
os.system(copy_command)
def copy_files(src_path, dst_path, list_files):
for file in list_files:
srcFile = src_path + file
dstFile = dst_path + file
copy_command = ("echo f| xcopy %s %s" % (srcFile, dstFile))
#print(copy_command)
os.system(copy_command)
list_dirs = [
r'\MoDIS_VC9\WIN32FS\SIM_CARD',
#r'\MoDIS_VC9\NetSim', # sometimes you need use simulator
r'\MoDIS_VC9\MoDIS\QWERTY_Skins'
]
list_files = [
r'\MoDIS_VC9\MoDIS\Debug\AVLib.dll',
r'\MoDIS_VC9\MoDIS\Debug\MoDIS.exe',
r'\MoDIS_VC9\MoDIS\Debug\MoDIS.exe.intermediate.manifest',
r'\MoDIS_VC9\MoDIS\Debug\MoDIS.exe.manifest',
r'\MoDIS_VC9\MoDIS\Debug\MoDIS.ini',
r'\MoDIS_VC9\MoDIS\Debug\modis_ui.dll',
r'\MoDIS_VC9\MoDIS\Debug\MODIS_UI_MSLT.dll',
r'\MoDIS_VC9\MoDIS\Debug\mtk_simulator.res',
r'\MoDIS_VC9\MoDIS\Debug\non.bmp',
r'\MoDIS_VC9\MoDIS\Debug\SimEditor.dll',
r'\MoDIS_VC9\MoDIS\InfoMonitor.ini',
r'\MoDIS_VC9\asm.log',
r'\MoDIS_VC9\NetSimScript.msc'
]
cur_dir = os.getcwd()
src_path = cur_dir + r'\mtk_6250'
dst_path = cur_dir + r'\mtk_Modis'
delete_dir(dst_path) # be careful to use this function.
copy_dirs(src_path, dst_path, list_dirs)
copy_files(src_path, dst_path, list_files)
# It is ok at python-3.3.1rc1.msi installer condition.
import os
import re
def delete_dir(directory):
copy_command = ("rmdir /s /q %s" % directory)
os.system(copy_command)
def copy_dirs(src_path, dst_path, list_dirs):
for directory in list_dirs:
srcDir = src_path + directory
dstDir = dst_path + directory
copy_command = ("echo d| xcopy %s %s /s /h" % (srcDir, dstDir))
#print(copy_command)
os.system(copy_command)
def copy_files(src_path, dst_path, list_files):
for file in list_files:
srcFile = src_path + file
dstFile = dst_path + file
copy_command = ("echo f| xcopy %s %s" % (srcFile, dstFile))
#print(copy_command)
os.system(copy_command)
list_dirs = [
r'\MoDIS_VC9\WIN32FS\SIM_CARD',
#r'\MoDIS_VC9\NetSim', # sometimes you need use simulator
r'\MoDIS_VC9\MoDIS\QWERTY_Skins'
]
list_files = [
r'\MoDIS_VC9\MoDIS\Debug\AVLib.dll',
r'\MoDIS_VC9\MoDIS\Debug\MoDIS.exe',
r'\MoDIS_VC9\MoDIS\Debug\MoDIS.exe.intermediate.manifest',
r'\MoDIS_VC9\MoDIS\Debug\MoDIS.exe.manifest',
r'\MoDIS_VC9\MoDIS\Debug\MoDIS.ini',
r'\MoDIS_VC9\MoDIS\Debug\modis_ui.dll',
r'\MoDIS_VC9\MoDIS\Debug\MODIS_UI_MSLT.dll',
r'\MoDIS_VC9\MoDIS\Debug\mtk_simulator.res',
r'\MoDIS_VC9\MoDIS\Debug\non.bmp',
r'\MoDIS_VC9\MoDIS\Debug\SimEditor.dll',
r'\MoDIS_VC9\MoDIS\InfoMonitor.ini',
r'\MoDIS_VC9\asm.log',
r'\MoDIS_VC9\NetSimScript.msc'
]
cur_dir = os.getcwd()
src_path = cur_dir + r'\mtk_6250'
dst_path = cur_dir + r'\mtk_Modis'
delete_dir(dst_path) # be careful to use this function.
copy_dirs(src_path, dst_path, list_dirs)
copy_files(src_path, dst_path, list_files)
运行完成后,文件会被copy到\mtk_Modis\目录,整体目录结构为:
cur_dir
├─mtk_6250
└─mtk_Modis
├─mtk_6250
└─mtk_Modis
PS:如果电脑上没有装VS2008,则该模拟器可能无法运行,按其提示copy对应的dll文件即可解决。