一、APK 文件处理脚本 ApkTool.py
ApkTool.py 是一个 APK 文件处理脚本 , 主要针对 APK 文件进行各种处理 , 如文件分析 ;
该脚本需要使用 apktool.jar 和 aapt.exe 工具 , 将这两个文件放在 ApkTool.py 同级目录中 ;
完整运行环境参考 https://github.com/han1202012/APK ;
ApkTool.py 脚本内容 :
# coding=utf-8
import os
import sys
import argparse
from subprocess import Popen, PIPE
import sys
reload(sys)
sys.setdefaultencoding('utf8')
class ApkTool:
def __init__(self, keystore=None, password=None, alias=None):
if sys.platform == 'win32':
self.file_separator = '\\'
else:
self.file_separator = '/'
path = ''
if hasattr(sys, '_MEIPASS'):
path = sys._MEIPASS + self.file_separator
self.apktooljar = path + 'apktool.jar'
self.aapt = path + 'aapt.exe'
self.objdump_x86 = path + 'objdump_x86.exe'
self.objdump_arm = path + 'objdump_arm.exe'
if keystore is None:
self.keystore = path + 'mykey-123456.keystore'
else:
self.keystore = keystore
if password is None:
self.password = '123456'
else:
self.password = password
if alias is None:
self.alias = 'mykey'
else:
self.alias = alias
self.cur_apk = {}
return
def unpack(self, apk, path):
cmd = 'java -jar ' + self.apktooljar + (' d -f -o %s %s' % (path, apk))
os.system(cmd)
return
def pack(self, path, apk):
cmd = 'java -jar ' + self.apktooljar + (' b %s -o %s' % (path, apk))
os.system(cmd)
return
def sign(self, apk, signed_apk):
path, file = os.path.split(signed_apk)
if os.path.exists(path) is False:
os.makedirs(path)
keystore = ' -keystore %s -storepass %s' % (self.keystore, self.password)
signedjar = ' -signedjar %s %s -digestalg SHA1 -sigalg MD5withRSA %s' % (signed_apk, apk, self.alias)
cmd = 'jarsigner -verbose ' + keystore + signedjar
print(cmd)
os.system(cmd)
def get_apk_label(self, apk_path):
pipe = Popen([self.aapt, 'dump', 'badging', apk_path], stdout=PIPE)
if pipe is not None:
while True:
line = pipe.stdout.readline()
line = line.decode('utf-8')
if len(line) == 0:
break
pos = line.find('application-label:')
if pos != -1:
return line[pos + 19:len(line) - 3] # \r\n占了2个,加上单引号一共3个字符
return ''
def get_apk_package_name(self, apk):
pipe = Popen([self.aapt, 'dump', 'badging', apk], stdout=PIPE)
if pipe is not None:
while True:
line = pipe.stdout.readline()
line = line.decode('utf-8')
if len(line) == 0:
break
pos = line.find('package:')
if pos != -1:
return line[pos + 8:len(line) - 2] # \r\n占了2个,加上单引号一共3个字符
return ''
def get_game_engine(libpath, file_separator):
data = {
'libcocos2dcpp.so': 'cocos引擎 cpp',
'libcocos2dlua.so': 'cocos引擎 lua',
'libcocos2djs.so': 'cocos引擎 javascipt',
'libunity.so': 'unity3D引擎',
'libgdx.so': 'libgdx引擎'
}
dir = ['armeabi-v7a', 'armeabi', 'x86']
for d in dir:
lib = libpath + d + file_separator
for f in data.keys():
if os.path.exists(lib + f):
return data[f]
return '未知引擎'
def analyse(apk, tool):
path, file = os.path.split(apk)
if len(path) == 0:
path = '.'
out_name = file[:-4]
out_txt = out_name + '.txt'
f_out = open(out_txt, 'w+')
line = '文件名称:%s\n' % apk
f_out.write(line)
line = '应用名称:%s\n' % tool.get_apk_label(apk)
f_out.write(line)
line = '应用信息:%s\n' % tool.get_apk_package_name(apk)
f_out.write(line)
unpack_path = path + tool.file_separator + 'unpack' + tool.file_separator + out_name
if os.path.exists(unpack_path) is False:
os.makedirs(unpack_path)
repack_path = path + tool.file_separator + 'repack' + tool.file_separator + out_name + '.apk'
if os.path.exists(path + tool.file_separator + 'repack') is False:
os.makedirs(path + tool.file_separator + 'repack')
sign_path = path + tool.file_separator + 'sign' + tool.file_separator + out_name + '.apk'
if os.path.exists(path + tool.file_separator + 'sign') is False:
os.makedirs(path + tool.file_separator + 'sign')
if os.path.exists(unpack_path + tool.file_separator + 'lib') is False:
tool.unpack(apk, unpack_path)
if os.path.exists(repack_path) is False:
tool.pack(unpack_path, repack_path)
if os.path.exists(sign_path) is False:
tool.sign(repack_path, sign_path)
if os.path.exists(repack_path) is False:
line = '打包检测:重打包失败,无法重打包\n'
else:
line = '打包检测:重打包成功\n'
is_repack_ok = True
f_out.write(line)
if os.path.exists(sign_path) is False:
line = '签名检测:重签名失败,无法重签名\n'
else:
line = '签名检测:重签名成功\n'
f_out.write(line)
libpath = unpack_path + tool.file_separator
libpath += 'lib' + tool.file_separator
line = '引擎检测:%s\n' % get_game_engine(libpath, tool.file_separator)
f_out.write(line)
f_out.write(
'----------------------------------------------------------------------------------------------------------------------------------\n')
f_out.close()
pass
def main():
parser = argparse.ArgumentParser(prog=sys.argv[0], usage='%(prog)s [options]')
help = """help 或者 -h 显示本帮助文档 """
parser.add_argument('-help', help=help, action='store_const', const='help')
parser.add_argument('-keystore', nargs='?', help='指定签名文件,默认mykey-123456.keystore')
parser.add_argument('-passwd', nargs='?', help='指定签名密码,默认123456')
parser.add_argument('-alias', nargs='?', help='指定签名别名,默认mykey')
parser.add_argument('-label', help='获取包名', action='store_const', const='label')
parser.add_argument('-unpack', help='解包文件', action='store_const', const='unpack')
parser.add_argument('-pack', help='打包文件', action='store_const', const='pack')
parser.add_argument('-sign', help='签名文件', action='store_const', const='sign')
parser.add_argument('-analyse', help='分析包', action='store_const', const='analyse')
parser.add_argument('-inapk', nargs='?', help='指定输入apk路径')
parser.add_argument('-outapk', nargs='?', help='指定输出apk路径')
parser.add_argument('-outpath', nargs='?', help='指定输出目录')
parser.add_argument('-inpath', nargs='?', help='指定输入目录')
args = parser.parse_args()
if args.help is not None:
parser.print_help()
return
attrs = ['keystore', 'passwd', 'alias', 'inapk', 'outapk', 'inpath', 'outpath', 'help']
value_map = {}
for attr in attrs:
value_map[attr] = getattr(args, attr, None)
tool = ApkTool(value_map['keystore'], value_map['passwd'], value_map['alias'])
if args.unpack is not None:
# -unpack -inapk D:\bamenGame\测试游戏\17.12.18jhzd.apk -outpath D:\bamenGame\测试游戏\out\17.12.18jhzd
if value_map['inapk'] is None:
print('需要指定输入apk路径')
return
if value_map['outpath'] is None:
print('需要指定输出目录')
return
tool.unpack(value_map['inapk'], value_map['outpath'])
return
if args.pack is not None:
# -pack -outapk D:\bamenGame\测试游戏\repack\17.12.18jhzd.apk -inpath D:\bamenGame\测试游戏\out\17.12.18jhzd
if value_map['inpath'] is None:
print('需要指定输入目录')
return
if value_map['outapk'] is None:
print('需要指定输出包路径')
return
tool.pack(value_map['inpath'], value_map['outapk'])
return
if args.sign is not None:
# -sign -inapk D:\bamenGame\测试游戏\repack\17.12.18jhzd.apk -outapk D:\bamenGame\测试游戏\sign\17.12.18jhzd.apk
if value_map['inapk'] is None:
print('需要指定输入目录')
return
if value_map['outapk'] is None:
print('需要指定输出包路径')
return
tool.sign(value_map['inapk'], value_map['outapk'])
return
if args.label is not None:
if value_map['inapk'] is None:
print('需要指定输入游戏包')
return
print(tool.get_apk_label(value_map['inapk']))
return
if args.analyse is not None:
if value_map['inapk'] is None:
print('需要指定输入游戏包,现在分析当前目录下所有的apk文件')
for file in os.listdir(os.curdir):
if os.path.isdir(file):
continue
if os.path.splitext(file)[1] == '.apk':
analyse(file, tool)
return
analyse(value_map['inapk'], tool)
return
parser.print_help()
if __name__ == '__main__':
main()
二、ApkTool.py 脚本用法
执行如下命令 , 分析 apk 文件 ;
python ApkTool.py -analyse -inapk apk/app-debug.apk
分析结果会放在 ApkTool.py 脚本所在目录的 app-debug.txt 文件中 , app-debug 是 apk 文件的名称 , 后缀改为 txt ;
分析完毕的内容如下 :
文件名称:apk/app-debug.apk
应用名称:EventBus_Demo
应用信息: name='com.eventbus_demo' versionCode='1' versionName='1.0' platformBuildVersionName=''
打包检测:重打包成功
签名检测:重签名成功
引擎检测:未知引擎
----------------------------------------------------------------------------------------------------------------------------------
如果文件比较多的话 , 通宵跑程序 ;
如果应用做了加固处理 , 是无法进行重打包的 ;
三、ApkTool.py 脚本分析 APK 输出结果
执行输出内容 :
Microsoft Windows [版本 10.0.19041.1237]
(c) Microsoft Corporation。保留所有权利。
D:\002_Project\011_Python\APK>python -V
Python 2.7.18
D:\002_Project\011_Python\APK>python ApkTool.py -analyse -inapk apk/app-debug.apk
I: Using Apktool 2.3.3 on app-debug.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
S: WARNING: Could not write to (C:\Users\octop\AppData\Local\apktool\framework), using C:\Users\octop\AppData\Local\Temp\ instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
I: Loading resource table from file: C:\Users\octop\AppData\Local\Temp\1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
I: Using Apktool 2.3.3
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
S: WARNING: Could not write to (C:\Users\octop\AppData\Local\apktool\framework), using C:\Users\octop\AppData\Local\Temp\ instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
I: Building apk file...
I: Copying unknown files/dir...
I: Built apk...
jarsigner -verbose -keystore mykey-123456.keystore -storepass 123456 -signedjar apk\sign\app-debug.apk apk\repack\app-debug.apk -digestalg SHA1 -sigalg MD5withRSA mykey
正在添加: META-INF/MANIFEST.MF
正在添加: META-INF/MYKEY.SF
正在添加: META-INF/MYKEY.RSA
正在签名: AndroidManifest.xml
正在签名: classes.dex
正在签名: res/anim/abc_fade_in.xml
正在签名: res/anim/abc_fade_out.xml
正在签名: res/anim/abc_grow_fade_in_from_bottom.xml
正在签名: res/anim/abc_popup_enter.xml
正在签名: res/anim/abc_popup_exit.xml
正在签名: res/anim/abc_shrink_fade_out_from_bottom.xml
正在签名: res/anim/abc_slide_in_bottom.xml
正在签名: res/anim/abc_slide_in_top.xml
正在签名: res/anim/abc_slide_out_bottom.xml
正在签名: res/anim/abc_slide_out_top.xml
正在签名: res/anim/abc_tooltip_enter.xml
正在签名: res/anim/abc_tooltip_exit.xml
正在签名: res/anim/btn_checkbox_to_checked_box_inner_merged_animation.xml
正在签名: res/anim/btn_checkbox_to_checked_box_outer_merged_animation.xml
正在签名: res/anim/btn_checkbox_to_checked_icon_null_animation.xml
正在签名: res/anim/btn_checkbox_to_unchecked_box_inner_merged_animation.xml
正在签名: res/anim/btn_checkbox_to_unchecked_check_path_merged_animation.xml
正在签名: res/anim/btn_checkbox_to_unchecked_icon_null_animation.xml
正在签名: res/anim/btn_radio_to_off_mtrl_dot_group_animation.xml
正在签名: res/anim/btn_radio_to_off_mtrl_ring_outer_animation.xml
正在签名: res/anim/btn_radio_to_off_mtrl_ring_outer_path_animation.xml
正在签名: res/anim/btn_radio_to_on_mtrl_dot_group_animation.xml
正在签名: res/anim/btn_radio_to_on_mtrl_ring_outer_animation.xml
正在签名: res/anim/btn_radio_to_on_mtrl_ring_outer_path_animation.xml
正在签名: res/anim/design_bottom_sheet_slide_in.xml
正在签名: res/anim/design_bottom_sheet_slide_out.xml
正在签名: res/anim/design_snackbar_in.xml
正在签名: res/anim/design_snackbar_out.xml
正在签名: res/anim/fragment_fast_out_extra_slow_in.xml
正在签名: res/anim/mtrl_bottom_sheet_slide_in.xml
正在签名: res/anim/mtrl_bottom_sheet_slide_out.xml
正在签名: res/anim/mtrl_card_lowers_interpolator.xml
正在签名: res/anim-v21/design_bottom_sheet_slide_in.xml
正在签名: res/anim-v21/design_bottom_sheet_slide_out.xml
正在签名: res/anim-v21/fragment_fast_out_extra_slow_in.xml
正在签名: res/anim-v21/mtrl_bottom_sheet_slide_in.xml
正在签名: res/anim-v21/mtrl_bottom_sheet_slide_out.xml
正在签名: res/animator/design_fab_hide_motion_spec.xml
正在签名: res/animator/design_fab_show_motion_spec.xml
正在签名: res/animator/fragment_close_enter.xml
正在签名: res/animator/fragment_close_exit.xml
正在签名: res/animator/fragment_fade_enter.xml
正在签名: res/animator/fragment_fade_exit.xml
正在签名: res/animator/fragment_open_enter.xml
正在签名: res/animator/fragment_open_exit.xml
正在签名: res/animator/linear_indeterminate_line1_head_interpolator.xml
正在签名: res/animator/linear_indeterminate_line1_tail_interpolator.xml
正在签名: res/animator/linear_indeterminate_line2_head_interpolator.xml
正在签名: res/animator/linear_indeterminate_line2_tail_interpolator.xml
正在签名: res/animator/mtrl_btn_state_list_anim.xml
正在签名: res/animator/mtrl_btn_unelevated_state_list_anim.xml
正在签名: res/animator/mtrl_card_state_list_anim.xml
正在签名: res/animator/mtrl_chip_state_list_anim.xml
正在签名: res/animator/mtrl_extended_fab_change_size_collapse_motion_spec.xml
正在签名: res/animator/mtrl_extended_fab_change_size_expand_motion_spec.xml
正在签名: res/animator/mtrl_extended_fab_hide_motion_spec.xml
正在签名: res/animator/mtrl_extended_fab_show_motion_spec.xml
正在签名: res/animator/mtrl_extended_fab_state_list_animator.xml
正在签名: res/animator/mtrl_fab_hide_motion_spec.xml
正在签名: res/animator/mtrl_fab_show_motion_spec.xml
正在签名: res/animator/mtrl_fab_transformation_sheet_collapse_spec.xml
正在签名: res/animator/mtrl_fab_transformation_sheet_expand_spec.xml
正在签名: res/animator-v19/mtrl_btn_state_list_anim.xml
正在签名: res/animator-v19/mtrl_card_state_list_anim.xml
正在签名: res/animator-v21/design_appbar_state_list_animator.xml
正在签名: res/color/abc_background_cache_hint_selector_material_dark.xml
正在签名: res/color/abc_background_cache_hint_selector_material_light.xml
正在签名: res/color/abc_btn_colored_borderless_text_material.xml
正在签名: res/color/abc_btn_colored_text_material.xml
正在签名: res/color/abc_hint_foreground_material_dark.xml
正在签名: res/color/abc_hint_foreground_material_light.xml
正在签名: res/color/abc_primary_text_disable_only_material_dark.xml
正在签名: res/color/abc_primary_text_disable_only_material_light.xml
正在签名: res/color/abc_primary_text_material_dark.xml
正在签名: res/color/abc_primary_text_material_light.xml
正在签名: res/color/abc_search_url_text.xml
正在签名: res/color/abc_secondary_text_material_dark.xml
正在签名: res/color/abc_secondary_text_material_light.xml
正在签名: res/color/abc_tint_btn_checkable.xml
正在签名: res/color/abc_tint_default.xml
正在签名: res/color/abc_tint_edittext.xml
正在签名: res/color/abc_tint_seek_thumb.xml
正在签名: res/color/abc_tint_spinner.xml
正在签名: res/color/abc_tint_switch_track.xml
正在签名: res/color/checkbox_themeable_attribute_color.xml
正在签名: res/color/design_box_stroke_color.xml
正在签名: res/color/design_error.xml
正在签名: res/color/design_icon_tint.xml
正在签名: res/color/material_cursor_color.xml
正在签名: res/color/material_on_background_disabled.xml
正在签名: res/color/material_on_background_emphasis_high_type.xml
正在签名: res/color/material_on_background_emphasis_medium.xml
正在签名: res/color/material_on_primary_disabled.xml
正在签名: res/color/material_on_primary_emphasis_high_type.xml
正在签名: res/color/material_on_primary_emphasis_medium.xml
正在签名: res/color/material_on_surface_disabled.xml
正在签名: res/color/material_on_surface_emphasis_high_type.xml
正在签名: res/color/material_on_surface_emphasis_medium.xml
正在签名: res/color/material_on_surface_stroke.xml
正在签名: res/color/material_slider_active_tick_marks_color.xml
正在签名: res/color/material_slider_active_track_color.xml
正在签名: res/color/material_slider_halo_color.xml
正在签名: res/color/material_slider_inactive_tick_marks_color.xml
正在签名: res/color/material_slider_inactive_track_color.xml
正在签名: res/color/material_slider_thumb_color.xml
正在签名: res/color/material_timepicker_button_background.xml
正在签名: res/color/material_timepicker_button_stroke.xml
正在签名: res/color/material_timepicker_clockface.xml
正在签名: res/color/material_timepicker_clock_text_color.xml
正在签名: res/color/material_timepicker_modebutton_tint.xml
正在签名: res/color/mtrl_btn_bg_color_selector.xml
正在签名: res/color/mtrl_btn_ripple_color.xml
正在签名: res/color/mtrl_btn_stroke_color_selector.xml
正在签名: res/color/mtrl_btn_text_btn_bg_color_selector.xml
正在签名: res/color/mtrl_btn_text_btn_ripple_color.xml
正在签名: res/color/mtrl_btn_text_color_selector.xml
正在签名: res/color/mtrl_calendar_item_stroke_color.xml
正在签名: res/color/mtrl_calendar_selected_range.xml
正在签名: res/color/mtrl_card_view_foreground.xml
正在签名: res/color/mtrl_card_view_ripple.xml
正在签名: res/color/mtrl_chip_background_color.xml
正在签名: res/color/mtrl_chip_close_icon_tint.xml
正在签名: res/color/mtrl_chip_surface_color.xml
正在签名: res/color/mtrl_chip_text_color.xml
正在签名: res/color/mtrl_choice_chip_background_color.xml
正在签名: res/color/mtrl_choice_chip_ripple_color.xml
正在签名: res/color/mtrl_choice_chip_text_color.xml
正在签名: res/color/mtrl_error.xml
正在签名: res/color/mtrl_fab_bg_color_selector.xml
正在签名: res/color/mtrl_fab_icon_text_color_selector.xml
正在签名: res/color/mtrl_fab_ripple_color.xml
正在签名: res/color/mtrl_filled_background_color.xml
正在签名: res/color/mtrl_filled_icon_tint.xml
正在签名: res/color/mtrl_filled_stroke_color.xml
正在签名: res/color/mtrl_indicator_text_color.xml
正在签名: res/color/mtrl_navigation_bar_colored_item_tint.xml
正在签名: res/color/mtrl_navigation_bar_colored_ripple_color.xml
正在签名: res/color/mtrl_navigation_bar_item_tint.xml
正在签名: res/color/mtrl_navigation_bar_ripple_color.xml
正在签名: res/color/mtrl_navigation_item_background_color.xml
正在签名: res/color/mtrl_navigation_item_icon_tint.xml
正在签名: res/color/mtrl_navigation_item_text_color.xml
正在签名: res/color/mtrl_on_primary_text_btn_text_color_selector.xml
正在签名: res/color/mtrl_on_surface_ripple_color.xml
正在签名: res/color/mtrl_outlined_icon_tint.xml
正在签名: res/color/mtrl_outlined_stroke_color.xml
正在签名: res/color/mtrl_popupmenu_overlay_color.xml
正在签名: res/color/mtrl_tabs_colored_ripple_color.xml
正在签名: res/color/mtrl_tabs_icon_color_selector.xml
正在签名: res/color/mtrl_tabs_icon_color_selector_colored.xml
正在签名: res/color/mtrl_tabs_legacy_text_color_selector.xml
正在签名: res/color/mtrl_tabs_ripple_color.xml
正在签名: res/color/mtrl_text_btn_text_color_selector.xml
正在签名: res/color/radiobutton_themeable_attribute_color.xml
正在签名: res/color/switch_thumb_material_dark.xml
正在签名: res/color/switch_thumb_material_light.xml
正在签名: res/color/test_mtrl_calendar_day.xml
正在签名: res/color/test_mtrl_calendar_day_selected.xml
正在签名: res/color-night/material_timepicker_button_stroke.xml
正在签名: res/color-night/material_timepicker_clockface.xml
正在签名: res/color-night/material_timepicker_modebutton_tint.xml
正在签名: res/color-v21/abc_btn_colored_borderless_text_material.xml
正在签名: res/color-v23/abc_btn_colored_borderless_text_material.xml
正在签名: res/color-v23/abc_btn_colored_text_material.xml
正在签名: res/color-v23/abc_color_highlight_material.xml
正在签名: res/color-v23/abc_tint_btn_checkable.xml
正在签名: res/color-v23/abc_tint_default.xml
正在签名: res/color-v23/abc_tint_edittext.xml
正在签名: res/color-v23/abc_tint_seek_thumb.xml
正在签名: res/color-v23/abc_tint_spinner.xml
正在签名: res/color-v23/abc_tint_switch_track.xml
正在签名: res/drawable/$avd_hide_password__0.xml
正在签名: res/drawable/$avd_hide_password__1.xml
正在签名: res/drawable/$avd_hide_password__2.xml
正在签名: res/drawable/$avd_show_password__0.xml
正在签名: res/drawable/$avd_show_password__1.xml
正在签名: res/drawable/$avd_show_password__2.xml
正在签名: res/drawable/abc_btn_borderless_material.xml
正在签名: res/drawable/abc_btn_check_material.xml
正在签名: res/drawable/abc_btn_check_material_anim.xml
正在签名: res/drawable/abc_btn_colored_material.xml
正在签名: res/drawable/abc_btn_default_mtrl_shape.xml
正在签名: res/drawable/abc_btn_radio_material.xml
正在签名: res/drawable/abc_btn_radio_material_anim.xml
正在签名: res/drawable/abc_cab_background_internal_bg.xml
正在签名: res/drawable/abc_cab_background_top_material.xml
正在签名: res/drawable/abc_dialog_material_background.xml
正在签名: res/drawable/abc_edit_text_material.xml
正在签名: res/drawable/abc_ic_ab_back_material.xml
正在签名: res/drawable/abc_ic_arrow_drop_right_black_24dp.xml
正在签名: res/drawable/abc_ic_clear_material.xml
正在签名: res/drawable/abc_ic_go_search_api_material.xml
正在签名: res/drawable/abc_ic_menu_copy_mtrl_am_alpha.xml
正在签名: res/drawable/abc_ic_menu_cut_mtrl_alpha.xml
正在签名: res/drawable/abc_ic_menu_overflow_material.xml
正在签名: res/drawable/abc_ic_menu_paste_mtrl_am_alpha.xml
正在签名: res/drawable/abc_ic_menu_selectall_mtrl_alpha.xml
正在签名: res/drawable/abc_ic_menu_share_mtrl_alpha.xml
正在签名: res/drawable/abc_ic_search_api_material.xml
正在签名: res/drawable/abc_ic_voice_search_api_material.xml
正在签名: res/drawable/abc_item_background_holo_dark.xml
正在签名: res/drawable/abc_item_background_holo_light.xml
正在签名: res/drawable/abc_list_divider_material.xml
正在签名: res/drawable/abc_list_selector_background_transition_holo_dark.xml
正在签名: res/drawable/abc_list_selector_background_transition_holo_light.xml
正在签名: res/drawable/abc_list_selector_holo_dark.xml
正在签名: res/drawable/abc_list_selector_holo_light.xml
正在签名: res/drawable/abc_ratingbar_indicator_material.xml
正在签名: res/drawable/abc_ratingbar_material.xml
正在签名: res/drawable/abc_ratingbar_small_material.xml
正在签名: res/drawable/abc_seekbar_thumb_material.xml
正在签名: res/drawable/abc_seekbar_tick_mark_material.xml
正在签名: res/drawable/abc_seekbar_track_material.xml
正在签名: res/drawable/abc_spinner_textfield_background_material.xml
正在签名: res/drawable/abc_star_black_48dp.xml
正在签名: res/drawable/abc_star_half_black_48dp.xml
正在签名: res/drawable/abc_switch_thumb_material.xml
正在签名: res/drawable/abc_tab_indicator_material.xml
正在签名: res/drawable/abc_textfield_search_material.xml
正在签名: res/drawable/abc_text_cursor_material.xml
正在签名: res/drawable/abc_vector_test.xml
正在签名: res/drawable/avd_hide_password.xml
正在签名: res/drawable/avd_show_password.xml
正在签名: res/drawable/btn_checkbox_checked_mtrl.xml
正在签名: res/drawable/btn_checkbox_checked_to_unchecked_mtrl_animation.xml
正在签名: res/drawable/btn_checkbox_unchecked_mtrl.xml
正在签名: res/drawable/btn_checkbox_unchecked_to_checked_mtrl_animation.xml
正在签名: res/drawable/btn_radio_off_mtrl.xml
正在签名: res/drawable/btn_radio_off_to_on_mtrl_animation.xml
正在签名: res/drawable/btn_radio_on_mtrl.xml
正在签名: res/drawable/btn_radio_on_to_off_mtrl_animation.xml
正在签名: res/drawable/design_fab_background.xml
正在签名: res/drawable/design_ic_visibility.xml
正在签名: res/drawable/design_ic_visibility_off.xml
正在签名: res/drawable/design_password_eye.xml
正在签名: res/drawable/design_snackbar_background.xml
正在签名: res/drawable/ic_clock_black_24dp.xml
正在签名: res/drawable/ic_keyboard_black_24dp.xml
正在签名: res/drawable/ic_mtrl_checked_circle.xml
正在签名: res/drawable/ic_mtrl_chip_checked_black.xml
正在签名: res/drawable/ic_mtrl_chip_checked_circle.xml
正在签名: res/drawable/ic_mtrl_chip_close_circle.xml
正在签名: res/drawable/material_cursor_drawable.xml
正在签名: res/drawable/material_ic_calendar_black_24dp.xml
正在签名: res/drawable/material_ic_clear_black_24dp.xml
正在签名: res/drawable/material_ic_edit_black_24dp.xml
正在签名: res/drawable/material_ic_keyboard_arrow_left_black_24dp.xml
正在签名: res/drawable/material_ic_keyboard_arrow_right_black_24dp.xml
正在签名: res/drawable/material_ic_menu_arrow_down_black_24dp.xml
正在签名: res/drawable/material_ic_menu_arrow_up_black_24dp.xml
正在签名: res/drawable/mtrl_dialog_background.xml
正在签名: res/drawable/mtrl_dropdown_arrow.xml
正在签名: res/drawable/mtrl_ic_arrow_drop_down.xml
正在签名: res/drawable/mtrl_ic_arrow_drop_up.xml
正在签名: res/drawable/mtrl_ic_cancel.xml
正在签名: res/drawable/mtrl_ic_error.xml
正在签名: res/drawable/mtrl_navigation_bar_item_background.xml
正在签名: res/drawable/mtrl_popupmenu_background.xml
正在签名: res/drawable/mtrl_popupmenu_background_dark.xml
正在签名: res/drawable/mtrl_tabs_default_indicator.xml
正在签名: res/drawable/navigation_empty_icon.xml
正在签名: res/drawable/notification_bg.xml
正在签名: res/drawable/notification_bg_low.xml
正在签名: res/drawable/notification_icon_background.xml
正在签名: res/drawable/notification_tile_bg.xml
正在签名: res/drawable/test_custom_background.xml
正在签名: res/drawable/tooltip_frame_dark.xml
正在签名: res/drawable/tooltip_frame_light.xml
正在签名: res/drawable-anydpi-v21/ic_launcher_background.xml
正在签名: res/drawable-anydpi-v24/$ic_launcher_foreground__0.xml
正在签名: res/drawable-anydpi-v24/ic_launcher_foreground.xml
正在签名: res/drawable-ldrtl-xxhdpi/abc_spinner_mtrl_am_alpha.9.png
正在签名: res/drawable-v21/abc_action_bar_item_background_material.xml
正在签名: res/drawable-v21/abc_btn_colored_material.xml
正在签名: res/drawable-v21/abc_dialog_material_background.xml
正在签名: res/drawable-v21/abc_edit_text_material.xml
正在签名: res/drawable-v21/abc_list_divider_material.xml
正在签名: res/drawable-v21/material_cursor_drawable.xml
正在签名: res/drawable-v21/mtrl_navigation_bar_item_background.xml
正在签名: res/drawable-v21/notification_action_background.xml
正在签名: res/drawable-v23/abc_control_background_material.xml
正在签名: res/drawable-v23/mtrl_popupmenu_background_dark.xml
正在签名: res/drawable-watch-v20/abc_dialog_material_background.xml
正在签名: res/drawable-xhdpi/notification_bg_low_normal.9.png
正在签名: res/drawable-xhdpi/notification_bg_low_pressed.9.png
正在签名: res/drawable-xhdpi/notification_bg_normal.9.png
正在签名: res/drawable-xhdpi/notification_bg_normal_pressed.9.png
正在签名: res/drawable-xhdpi/notify_panel_notification_icon_bg.png
正在签名: res/drawable-xxhdpi/abc_ab_share_pack_mtrl_alpha.9.png
正在签名: res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_000.png
正在签名: res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_015.png
正在签名: res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_000.png
正在签名: res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_015.png
正在签名: res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png
正在签名: res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png
正在签名: res/drawable-xxhdpi/abc_cab_background_top_mtrl_alpha.9.png
正在签名: res/drawable-xxhdpi/abc_ic_commit_search_api_mtrl_alpha.png
正在签名: res/drawable-xxhdpi/abc_list_divider_mtrl_alpha.9.png
正在签名: res/drawable-xxhdpi/abc_list_focused_holo.9.png
正在签名: res/drawable-xxhdpi/abc_list_longpressed_holo.9.png
正在签名: res/drawable-xxhdpi/abc_list_pressed_holo_dark.9.png
正在签名: res/drawable-xxhdpi/abc_list_pressed_holo_light.9.png
正在签名: res/drawable-xxhdpi/abc_list_selector_disabled_holo_dark.9.png
正在签名: res/drawable-xxhdpi/abc_list_selector_disabled_holo_light.9.png
正在签名: res/drawable-xxhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png
正在签名: res/drawable-xxhdpi/abc_popup_background_mtrl_mult.9.png
正在签名: res/drawable-xxhdpi/abc_scrubber_control_off_mtrl_alpha.png
正在签名: res/drawable-xxhdpi/abc_scrubber_control_to_pressed_mtrl_000.png
正在签名: res/drawable-xxhdpi/abc_scrubber_control_to_pressed_mtrl_005.png
正在签名: res/drawable-xxhdpi/abc_scrubber_primary_mtrl_alpha.9.png
正在签名: res/drawable-xxhdpi/abc_scrubber_track_mtrl_alpha.9.png
正在签名: res/drawable-xxhdpi/abc_spinner_mtrl_am_alpha.9.png
正在签名: res/drawable-xxhdpi/abc_switch_track_mtrl_alpha.9.png
正在签名: res/drawable-xxhdpi/abc_tab_indicator_mtrl_alpha.9.png
正在签名: res/drawable-xxhdpi/abc_textfield_activated_mtrl_alpha.9.png
正在签名: res/drawable-xxhdpi/abc_textfield_default_mtrl_alpha.9.png
正在签名: res/drawable-xxhdpi/abc_textfield_search_activated_mtrl_alpha.9.png
正在签名: res/drawable-xxhdpi/abc_textfield_search_default_mtrl_alpha.9.png
正在签名: res/drawable-xxhdpi/abc_text_select_handle_left_mtrl.png
正在签名: res/drawable-xxhdpi/abc_text_select_handle_middle_mtrl.png
正在签名: res/drawable-xxhdpi/abc_text_select_handle_right_mtrl.png
正在签名: res/drawable-xxhdpi/ic_launcher_background.png
正在签名: res/interpolator/btn_checkbox_checked_mtrl_animation_interpolator_0.xml
正在签名: res/interpolator/btn_checkbox_checked_mtrl_animation_interpolator_1.xml
正在签名: res/interpolator/btn_checkbox_unchecked_mtrl_animation_interpolator_0.xml
正在签名: res/interpolator/btn_checkbox_unchecked_mtrl_animation_interpolator_1.xml
正在签名: res/interpolator/btn_radio_to_off_mtrl_animation_interpolator_0.xml
正在签名: res/interpolator/btn_radio_to_on_mtrl_animation_interpolator_0.xml
正在签名: res/interpolator/fast_out_slow_in.xml
正在签名: res/interpolator/mtrl_fast_out_linear_in.xml
正在签名: res/interpolator/mtrl_fast_out_slow_in.xml
正在签名: res/interpolator/mtrl_linear.xml
正在签名: res/interpolator/mtrl_linear_out_slow_in.xml
正在签名: res/interpolator-v21/mtrl_fast_out_linear_in.xml
正在签名: res/interpolator-v21/mtrl_fast_out_slow_in.xml
正在签名: res/interpolator-v21/mtrl_linear_out_slow_in.xml
正在签名: res/layout/abc_action_bar_title_item.xml
正在签名: res/layout/abc_action_bar_up_container.xml
正在签名: res/layout/abc_action_menu_item_layout.xml
正在签名: res/layout/abc_action_menu_layout.xml
正在签名: res/layout/abc_action_mode_bar.xml
正在签名: res/layout/abc_action_mode_close_item_material.xml
正在签名: res/layout/abc_activity_chooser_view.xml
正在签名: res/layout/abc_activity_chooser_view_list_item.xml
正在签名: res/layout/abc_alert_dialog_button_bar_material.xml
正在签名: res/layout/abc_alert_dialog_material.xml
正在签名: res/layout/abc_alert_dialog_title_material.xml
正在签名: res/layout/abc_cascading_menu_item_layout.xml
正在签名: res/layout/abc_dialog_title_material.xml
正在签名: res/layout/abc_expanded_menu_layout.xml
正在签名: res/layout/abc_list_menu_item_checkbox.xml
正在签名: res/layout/abc_list_menu_item_icon.xml
正在签名: res/layout/abc_list_menu_item_layout.xml
正在签名: res/layout/abc_list_menu_item_radio.xml
正在签名: res/layout/abc_popup_menu_header_item_layout.xml
正在签名: res/layout/abc_popup_menu_item_layout.xml
正在签名: res/layout/abc_screen_content_include.xml
正在签名: res/layout/abc_screen_simple.xml
正在签名: res/layout/abc_screen_simple_overlay_action_mode.xml
正在签名: res/layout/abc_screen_toolbar.xml
正在签名: res/layout/abc_search_dropdown_item_icons_2line.xml
正在签名: res/layout/abc_search_view.xml
正在签名: res/layout/abc_select_dialog_material.xml
正在签名: res/layout/abc_tooltip.xml
正在签名: res/layout/activity_main.xml
正在签名: res/layout/custom_dialog.xml
正在签名: res/layout/design_bottom_navigation_item.xml
正在签名: res/layout/design_bottom_sheet_dialog.xml
正在签名: res/layout/design_layout_snackbar.xml
正在签名: res/layout/design_layout_snackbar_include.xml
正在签名: res/layout/design_layout_tab_icon.xml
正在签名: res/layout/design_layout_tab_text.xml
正在签名: res/layout/design_menu_item_action_area.xml
正在签名: res/layout/design_navigation_item.xml
正在签名: res/layout/design_navigation_item_header.xml
正在签名: res/layout/design_navigation_item_separator.xml
正在签名: res/layout/design_navigation_item_subheader.xml
正在签名: res/layout/design_navigation_menu.xml
正在签名: res/layout/design_navigation_menu_item.xml
正在签名: res/layout/design_text_input_end_icon.xml
正在签名: res/layout/design_text_input_start_icon.xml
正在签名: res/layout/material_chip_input_combo.xml
正在签名: res/layout/material_clockface_textview.xml
正在签名: res/layout/material_clockface_view.xml
正在签名: res/layout/material_clock_display.xml
正在签名: res/layout/material_clock_display_divider.xml
正在签名: res/layout/material_clock_period_toggle.xml
正在签名: res/layout/material_radial_view_group.xml
正在签名: res/layout/material_textinput_timepicker.xml
正在签名: res/layout/material_timepicker.xml
正在签名: res/layout/material_timepicker_dialog.xml
正在签名: res/layout/material_timepicker_textinput_display.xml
正在签名: res/layout/material_time_chip.xml
正在签名: res/layout/material_time_input.xml
正在签名: res/layout/mtrl_alert_dialog.xml
正在签名: res/layout/mtrl_alert_dialog_actions.xml
正在签名: res/layout/mtrl_alert_dialog_title.xml
正在签名: res/layout/mtrl_alert_select_dialog_item.xml
正在签名: res/layout/mtrl_alert_select_dialog_multichoice.xml
正在签名: res/layout/mtrl_alert_select_dialog_singlechoice.xml
正在签名: res/layout/mtrl_calendar_day.xml
正在签名: res/layout/mtrl_calendar_days_of_week.xml
正在签名: res/layout/mtrl_calendar_day_of_week.xml
正在签名: res/layout/mtrl_calendar_horizontal.xml
正在签名: res/layout/mtrl_calendar_month.xml
正在签名: res/layout/mtrl_calendar_months.xml
正在签名: res/layout/mtrl_calendar_month_labeled.xml
正在签名: res/layout/mtrl_calendar_month_navigation.xml
正在签名: res/layout/mtrl_calendar_vertical.xml
正在签名: res/layout/mtrl_calendar_year.xml
正在签名: res/layout/mtrl_layout_snackbar.xml
正在签名: res/layout/mtrl_layout_snackbar_include.xml
正在签名: res/layout/mtrl_navigation_rail_item.xml
正在签名: res/layout/mtrl_picker_actions.xml
正在签名: res/layout/mtrl_picker_dialog.xml
正在签名: res/layout/mtrl_picker_fullscreen.xml
正在签名: res/layout/mtrl_picker_header_dialog.xml
正在签名: res/layout/mtrl_picker_header_fullscreen.xml
正在签名: res/layout/mtrl_picker_header_selection_text.xml
正在签名: res/layout/mtrl_picker_header_title_text.xml
正在签名: res/layout/mtrl_picker_header_toggle.xml
正在签名: res/layout/mtrl_picker_text_input_date.xml
正在签名: res/layout/mtrl_picker_text_input_date_range.xml
正在签名: res/layout/notification_action.xml
正在签名: res/layout/notification_action_tombstone.xml
正在签名: res/layout/notification_template_custom_big.xml
正在签名: res/layout/notification_template_icon_group.xml
正在签名: res/layout/notification_template_part_chronometer.xml
正在签名: res/layout/notification_template_part_time.xml
正在签名: res/layout/select_dialog_item_material.xml
正在签名: res/layout/select_dialog_multichoice_material.xml
正在签名: res/layout/select_dialog_singlechoice_material.xml
正在签名: res/layout/support_simple_spinner_dropdown_item.xml
正在签名: res/layout/test_action_chip.xml
正在签名: res/layout/test_chip_zero_corner_radius.xml
正在签名: res/layout/test_design_checkbox.xml
正在签名: res/layout/test_design_radiobutton.xml
正在签名: res/layout/test_navigation_bar_item_layout.xml
正在签名: res/layout/test_reflow_chipgroup.xml
正在签名: res/layout/test_toolbar.xml
正在签名: res/layout/test_toolbar_custom_background.xml
正在签名: res/layout/test_toolbar_elevation.xml
正在签名: res/layout/test_toolbar_surface.xml
正在签名: res/layout/text_view_without_line_height.xml
正在签名: res/layout/text_view_with_line_height_from_appearance.xml
正在签名: res/layout/text_view_with_line_height_from_layout.xml
正在签名: res/layout/text_view_with_line_height_from_style.xml
正在签名: res/layout/text_view_with_theme_line_height.xml
正在签名: res/layout-land/material_clock_period_toggle_land.xml
正在签名: res/layout-land/material_timepicker.xml
正在签名: res/layout-land/mtrl_picker_header_dialog.xml
正在签名: res/layout-ldrtl/material_textinput_timepicker.xml
正在签名: res/layout-sw600dp/design_layout_snackbar.xml
正在签名: res/layout-sw600dp/mtrl_layout_snackbar.xml
正在签名: res/layout-v21/abc_screen_toolbar.xml
正在签名: res/layout-v21/notification_action.xml
正在签名: res/layout-v21/notification_action_tombstone.xml
正在签名: res/layout-v21/notification_template_custom_big.xml
正在签名: res/layout-v21/notification_template_icon_group.xml
正在签名: res/layout-v21/test_design_checkbox.xml
正在签名: res/layout-v21/test_design_radiobutton.xml
正在签名: res/layout-v21/test_toolbar_elevation.xml
正在签名: res/layout-v22/abc_alert_dialog_button_bar_material.xml
正在签名: res/layout-v22/material_timepicker_dialog.xml
正在签名: res/layout-v22/mtrl_alert_dialog_actions.xml
正在签名: res/layout-v26/abc_screen_toolbar.xml
正在签名: res/layout-v26/mtrl_calendar_month.xml
正在签名: res/layout-watch-v20/abc_alert_dialog_button_bar_material.xml
正在签名: res/layout-watch-v20/abc_alert_dialog_title_material.xml
正在签名: res/mipmap-anydpi-v26/ic_launcher.xml
正在签名: res/mipmap-anydpi-v26/ic_launcher_round.xml
正在签名: res/mipmap-hdpi/ic_launcher.png
正在签名: res/mipmap-hdpi/ic_launcher_round.png
正在签名: res/mipmap-mdpi/ic_launcher.png
正在签名: res/mipmap-mdpi/ic_launcher_round.png
正在签名: res/mipmap-xhdpi/ic_launcher.png
正在签名: res/mipmap-xhdpi/ic_launcher_round.png
正在签名: res/mipmap-xxhdpi/ic_launcher.png
正在签名: res/mipmap-xxhdpi/ic_launcher_round.png
正在签名: res/mipmap-xxxhdpi/ic_launcher.png
正在签名: res/mipmap-xxxhdpi/ic_launcher_round.png
正在签名: res/xml/standalone_badge.xml
正在签名: res/xml/standalone_badge_gravity_bottom_end.xml
正在签名: res/xml/standalone_badge_gravity_bottom_start.xml
正在签名: res/xml/standalone_badge_gravity_top_start.xml
正在签名: res/xml/standalone_badge_offset.xml
正在签名: resources.arsc
jar 已签名。
警告:
未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (2044-10-28) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。
D:\002_Project\011_Python\APK>