【Android 逆向】APK 文件处理脚本 ApkTool.py ( 脚本简介 | 用法 | 分析 APK 文件 )





一、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>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值