Full Code of wulio/Coeus for AI

master 0a4276ff9143 cached
91 files
48.4 MB
2.5M tokens
1091 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (10,159K chars total). Download the full file to get everything.
Repository: wulio/Coeus
Branch: master
Commit: 0a4276ff9143
Files: 91
Total size: 48.4 MB

Directory structure:
gitextract_wrb45nhy/

├── .gitattributes
├── LICENSE
├── README.md
├── coeus.py
├── config.py
├── report.xml
├── result/
│   └── 20191224-11-28-55/
│       ├── info.log
│       └── report.xml
├── scanner/
│   ├── __init__.py
│   ├── base.py
│   ├── dynamic.py
│   ├── dynamicscanner/
│   │   └── __init__.py
│   ├── fuzz/
│   │   └── __init__.py
│   ├── static.py
│   └── staticscanner/
│       ├── __init__.py
│       ├── api.py
│       ├── info.py
│       └── policy.py
├── script/
│   ├── __init__.py
│   ├── exploit_api.json
│   ├── hiddenapi-flags.csv
│   ├── policy_api.json
│   └── policy_permission.json
├── test/
│   ├── bugly_crash_release.jar
│   ├── getui_2.13.3.0-gisdk_3.1.9.1-gssdk_2.3.0.0.aar
│   ├── gisdk-2.13.3.0.aar
│   ├── gisdk-2.9.3.0.aar
│   └── glide-4.10.0.aar
├── tools/
│   ├── aapt
│   ├── adb/
│   │   ├── linux/
│   │   │   ├── adb
│   │   │   ├── api/
│   │   │   │   └── api-versions.xml
│   │   │   ├── dmtracedump
│   │   │   ├── etc1tool
│   │   │   ├── fastboot
│   │   │   ├── hprof-conv
│   │   │   ├── source.properties
│   │   │   ├── sqlite3
│   │   │   └── systrace/
│   │   │       ├── AUTHORS
│   │   │       ├── LICENSE
│   │   │       ├── NOTICE
│   │   │       ├── UPSTREAM_REVISION
│   │   │       ├── prefix.html
│   │   │       ├── script.js
│   │   │       ├── style.css
│   │   │       ├── suffix.html
│   │   │       ├── systrace-legacy.py
│   │   │       └── systrace.py
│   │   ├── mac/
│   │   │   ├── adb
│   │   │   ├── api/
│   │   │   │   └── api-versions.xml
│   │   │   ├── dmtracedump
│   │   │   ├── etc1tool
│   │   │   ├── fastboot
│   │   │   ├── hprof-conv
│   │   │   ├── source.properties
│   │   │   ├── sqlite3
│   │   │   └── systrace/
│   │   │       ├── AUTHORS
│   │   │       ├── LICENSE
│   │   │       ├── NOTICE
│   │   │       ├── UPSTREAM_REVISION
│   │   │       ├── prefix.html
│   │   │       ├── script.js
│   │   │       ├── style.css
│   │   │       ├── suffix.html
│   │   │       ├── systrace-legacy.py
│   │   │       └── systrace.py
│   │   └── windows/
│   │       ├── api/
│   │       │   └── api-versions.xml
│   │       ├── source.properties
│   │       └── systrace/
│   │           ├── AUTHORS
│   │           ├── LICENSE
│   │           ├── NOTICE
│   │           ├── UPSTREAM_REVISION
│   │           ├── prefix.html
│   │           ├── script.js
│   │           ├── style.css
│   │           ├── suffix.html
│   │           ├── systrace-legacy.py
│   │           └── systrace.py
│   ├── apktool.jar
│   ├── baksmali.jar
│   ├── cfr_0_96.jar
│   ├── dx.jar
│   ├── jad
│   └── jad_mac
├── update-info.txt
└── utils/
    ├── __init__.py
    ├── fileutils.py
    ├── manager.py
    ├── md5.py
    ├── sdkinfo.py
    ├── tool.py
    └── ziputils.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
*.js linguist-language=python
*.css linguist-language=python
*.html linguist-language=python


================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
# Coeus

Coeus:
  Coeus was one of the Titans, son of Uranus and Gaia. His name means questioning.
  
  if we need import android sdk,we maybe have some questions about the sdk,like sercurity/permissions/policy/info
  
  Coeus project will help you do this . you can see report.xml in report dir.

  
# Try
Try your first Coeus scan:
    
    python coeus.py xxx.aar


# CH

## 0x01 项目地址

项目地址:
	https://github.com/wulio/Coeus

## 0x02 依赖环境

​	python 3.x / java	

## 0x03 安装使用教程

  - 安装 :
      git clone https://github.com/wulio/Coeus.git
  - 一键扫描:
      python coeus.py xxx.aar

## 0x04 相关说明

-   相关政策代码及隐私代码检测策略,均在scrpit文件夹中,json格式便于添加与修改

- 	相应的工具也存储在tool文件夹下

- 	具体代码逻辑均可在项目组查看。

- 	生成的扫描文件,输出在result文件夹下,分别有对应的log文件和输出的report.xml文件。


## 0x05 使用示例

    python ceous.py ./test/getui_2.13.3.0-gisdk_3.1.9.1-gssdk_2.3.0.0.aar	

# Authors

- deff

# License

Coeus support [Apache License 2.0](https://github.com/baidu/AdvBox/blob/master/LICENSE)

# Email
  deffingh@gmail.com

# Issues
  welcome star or issues!

# Plan

- [x] - more-sdk-info         2019.12.30
- [ ] - script-update    2019.1.15
- [ ] - apk-support      2019.2.7
- [ ] - dynamicscannner  2019.3
- [ ] - fuzz            2020.4
- [ ] - 
- [ ] - 
- [ ] -

cause of work-transform  pasued plan   

# Project
version : v1.0.1
time :2019-12-30
1. 更新部分script规则
2. 更新支持输入文件为相对路径
3. 更新url展示,过滤其中相同url地址
4. 添加部分工具,如adb/dex2jar等工具

由于工作转化,暂停计划。


================================================
FILE: coeus.py
================================================
# coding: utf-8
from utils.manager import Manager

__author__ = 'deff'
import sys
import os
if len(sys.argv) < 1:
    print("usage:python  coeus.py sdk_path [-d]")
    print("-d means delete temp file.")
    print("sdk_path: aar or jar or apk")
    sys.exit(0)


sdk_path = sys.argv[1]

if not os.path.exists(sdk_path):
    sdk_path = os.path.join(os.curdir, sdk_path)
    if not os.path.exists(sdk_path):
        print("please input correct sdk_path.")
        sys.exit(0)

m = Manager(sdk_path)
m.start()

if len(sys.argv) > 2 and sys.argv[2] == "-d":
    m.delete()


================================================
FILE: config.py
================================================
# coding: utf-8
__author__ = 'deff'

import os


class Config:
    RESULT_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "result")
    TEMP_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "temp")  # 工作目录
    TOOL_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "tools")
    SCRIPT_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "script")
    POLICY_PERMISSION_PATH = os.path.join(SCRIPT_PATH, "policy_permission.json")
    POLICY_API_PATH = os.path.join(SCRIPT_PATH, "policy_api.json")
    EXPLOIT_API_PATH = os.path.join(SCRIPT_PATH, "exploit_api.json")

    def __init__(self):
        self.sdk_path = ""
        self.result_path = ""

        self.temp_path = ""
        self.unzip_path = ""
        self.decompile_path = ""

        self.java_path = ""
        self.smali_path = ""

        self.jar_path = ""
        self.so_path = ""
        self.xml_path = ""
        self.res_path = ""
        self.assets_path = ""
        self.libs_path = ""
        self.jni_path = ""


config = Config()


================================================
FILE: report.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<coeus>
    <sdkinfo>
        <sdkname>getui_2.13.3.0-gisdk_3.1.9.1-gssdk_2.3.0.0</sdkname>
        <packageName>com.getui.onesdk</packageName>
        <version>onesdk-1.0.0</version>
        <sdksize>798KB</sdksize>
        <md5>e98e661ec3804cf3c9ed21a17fa9584b</md5>
        <targetsdk>targetSdkVersion 22</targetsdk>
        <minsdk>minSdkVersion 14</minsdk>
        <permission>android.permission.INTERNET</permission>
        <permission>android.permission.READ_PHONE_STATE</permission>
        <permission>android.permission.ACCESS_NETWORK_STATE</permission>
        <permission>android.permission.CHANGE_WIFI_STATE</permission>
        <permission>android.permission.ACCESS_WIFI_STATE</permission>
        <permission>android.permission.RECEIVE_BOOT_COMPLETED</permission>
        <permission>android.permission.WRITE_EXTERNAL_STORAGE</permission>
        <permission>android.permission.VIBRATE</permission>
        <permission>android.permission.GET_TASKS</permission>
        <permission>getui.permission.GetuiService.${applicationId}</permission>
        <permission>android.permission.WRITE_EXTERNAL_STORAGE</permission>
        <permission>android.permission.READ_PHONE_STATE</permission>
        <permission>android.permission.READ_EXTERNAL_STORAGE</permission>
        <permission>android.permission.SYSTEM_ALERT_WINDOW</permission>
    </sdkinfo>
    <base-policy>
        <target_sdk>
            <name>22</name>
            <summary>当前sdkversoin为22</summary>
            <desc>电信终端产业协会(TAF)发布的《移动应用软件高 API 等级预置与分发自律公约》要求,截止到2019年5月1日所有新发布的应用 API 必须为26或更高,2019年8月1日现有应用 API
                必须升级为26或更高。2019-11-1之后,上架谷歌Play商店要求应用的TargetSdkVersion>=28
            </desc>
            <level>2</level>
            <slu>联系sdk开发者,修改sdk版本号</slu>
        </target_sdk>
        <warning-permission>
            <name>android.permission.READ_PHONE_STATE</name>
            <summary>读取手机状态和身份</summary>
            <desc>工信部要求不可获取,其次是andoridQ版本将限制应用访问不可重设的设备识别码,如
                IMEI、序列号等,所有获取设备识别码的接口都增加了新的权限:READ_PRIVILEGED_PHONE_STATE,该权限需要系统签名的应用才能申请,意味着三方应用无法获取设备识别码。
            </desc>
            <level>2</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.RECEIVE_BOOT_COMPLETED</name>
            <summary>开机时自动启动</summary>
            <desc>允许应用程序在系统完成启动后即自行启动。这样会延长手机的启动时间,而且如果应用程序一直运行,会降低手机的整体速度。</desc>
            <level>1</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.WRITE_EXTERNAL_STORAGE</name>
            <summary>修改/删除SD卡中的内容</summary>
            <desc>允许应用程序写入SD卡。需用户授权,且不授权不能导致app失败,注意是否做好缺省。</desc>
            <level>2</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.GET_TASKS</name>
            <summary>检索当前运行的应用程序</summary>
            <desc>允许应用程序检索有关当前和最近运行的任务的信息。注意该项可能违反工信部要求,个人隐私部分,且不授权不能影响用户使用。</desc>
            <level>1</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.WRITE_EXTERNAL_STORAGE</name>
            <summary>修改/删除SD卡中的内容</summary>
            <desc>允许应用程序写入SD卡。需用户授权,且不授权不能导致app失败,注意是否做好缺省。</desc>
            <level>2</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.READ_PHONE_STATE</name>
            <summary>读取手机状态和身份</summary>
            <desc>工信部要求不可获取,其次是andoridQ版本将限制应用访问不可重设的设备识别码,如
                IMEI、序列号等,所有获取设备识别码的接口都增加了新的权限:READ_PRIVILEGED_PHONE_STATE,该权限需要系统签名的应用才能申请,意味着三方应用无法获取设备识别码。
            </desc>
            <level>2</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.READ_EXTERNAL_STORAGE</name>
            <summary>读取外存</summary>
            <desc>允许应用程序读SD卡,目前应工信部要求,需用户授权,且不授权不能导致app失败,注意是否做好缺省。</desc>
            <level>2</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.SYSTEM_ALERT_WINDOW</name>
            <summary>显示系统级警报</summary>
            <desc>允许应用程序显示系统警报窗口。恶意应用程序可借此掌控整个手机屏幕。</desc>
            <level>1</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
    </base-policy>
    <api-policy>
        <api>
            <name>获取imei</name>
            <summary>sdk获取imei信息,需谨慎处理,否则APP可能被要求整改</summary>
            <desc>1.工信部要求2.android10及以上获取不到了3.imei权限部分需要注意兼容</desc>
            <code>invoke-virtual {v0}, Landroid/telephony/TelephonyManager;-&amp;lt;getDeviceId()Ljava/lang/String;
            </code>
            <code>invoke-virtual {v0}, Landroid/telephony/TelephonyManager;-&amp;lt;getDeviceId()Ljava/lang/String;
            </code>
            <code>invoke-virtual {v1}, Landroid/telephony/TelephonyManager;-&amp;lt;getDeviceId()Ljava/lang/String;
            </code>
            <classname>\com\getui\gis\sdk\e\m.smali</classname>
            <classname>\com\getui\gs\ias\e\x.smali</classname>
            <classname>\com\getui\gtc\d\a\d.smali</classname>
            <level>2</level>
            <slu>
                联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。
            </slu>
        </api>
        <api>
            <name>获取imsi</name>
            <summary>sdk获取imsi信息,需谨慎处理,否则APP可能被要求整改</summary>
            <desc>工信部要求,不得向第三方提供用户设备IMEI号、地理位置、imsi等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。</desc>
            <code>invoke-virtual {v0},
                Landroid/telephony/TelephonyManager;-&amp;lt;getSubscriberId()Ljava/lang/String;
            </code>
            <code>invoke-virtual {v0},
                Landroid/telephony/TelephonyManager;-&amp;lt;getSubscriberId()Ljava/lang/String;
            </code>
            <code>invoke-virtual {v0},
                Landroid/telephony/TelephonyManager;-&amp;lt;getSubscriberId()Ljava/lang/String;
            </code>
            <code>invoke-virtual {v1},
                Landroid/telephony/TelephonyManager;-&amp;lt;getSubscriberId()Ljava/lang/String;
            </code>
            <classname>\com\getui\gis\sdk\e\m.smali</classname>
            <classname>\com\getui\gs\ias\e\ac.smali</classname>
            <classname>\com\getui\gs\ias\e\x.smali</classname>
            <classname>\com\getui\gtc\d\a\d.smali</classname>
            <level>1</level>
            <slu>
                联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。
            </slu>
        </api>
        <api>
            <name>获取mac</name>
            <summary>sdk获取mac信息,需谨慎处理,否则APP可能被要求整改</summary>
            <desc>1.工信部要求,mac也属于个人信息,2.android9及以上系统会随机生成不同的 MAC</desc>
            <code>invoke-virtual {v0}, Landroid/net/wifi/WifiInfo;-&amp;lt;getMacAddress()Ljava/lang/String;</code>
            <code>invoke-virtual {v0}, Landroid/net/wifi/WifiInfo;-&amp;lt;getMacAddress()Ljava/lang/String;</code>
            <code>invoke-virtual {v0}, Landroid/net/wifi/WifiInfo;-&amp;lt;getMacAddress()Ljava/lang/String;</code>
            <classname>\com\getui\gis\sdk\e\m.smali</classname>
            <classname>\com\getui\gs\ias\e\x.smali</classname>
            <classname>\com\getui\gtc\e\l.smali</classname>
            <level>1</level>
            <slu>
                联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。
            </slu>
        </api>
        <api>
            <name>获取已安装程序列表</name>
            <summary>sdk尝试获取已安装程序列表 1.该信息属于个人隐私信息 2.工信部要求</summary>
            <desc>sdk获取app列表,极有可能导致被整改</desc>
            <code>invoke-virtual {v0, p0, v1}, Landroid/content/pm/PackageManager;-&amp;lt;queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List;</code>
            <code>invoke-virtual {v4, v0}, Landroid/content/pm/PackageManager;-&amp;lt;getInstalledPackages(I)Ljava/util/List;</code>
            <code>invoke-virtual {v4, v0}, Landroid/content/pm/PackageManager;-&amp;lt;getInstalledPackages(I)Ljava/util/List;</code>
            <classname>\com\getui\gs\ias\e\u.smali</classname>
            <classname>\com\getui\gs\ias\e\x.smali</classname>
            <classname>\com\getui\gs\ias\e\x.smali</classname>
            <level>2</level>
            <slu>
                联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。
            </slu>
        </api>
    </api-policy>
    <api-exploit>
        <api>
            <name>动态注册Receiver权限设置漏洞风险</name>
            <summary>动态注册Receiver权限设置漏洞风险</summary>
            <desc>Receiver权限未设置,恶意程序可以发送相应的action广播危害应用安全</desc>
            <code>invoke-virtual {v0, v1, v2}, Landroid/content/Context;-&amp;lt;registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;</code>
            <code>invoke-virtual {p0, v1, v0}, Landroid/content/Context;-&amp;lt;registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;</code>
            <classname>\com\getui\gis\sdk\c.smali</classname>
            <classname>\com\getui\gs\sdk\b.smali</classname>
            <level>2</level>
            <slu>使用registerReceiver(BroadcastReceiver, IntentFilter, broadcastPermission, Handler)替代</slu>
        </api>
        <api>
            <name>广播信息泄露风险</name>
            <summary>广播信息泄露风险</summary>
            <desc>广播信息泄露风险</desc>
            <code>invoke-virtual {p1, v0}, Landroid/content/Context;-&amp;lt;sendBroadcast(Landroid/content/Intent;)V
            </code>
            <code>invoke-virtual {v1, v6}, Landroid/content/Context;-&amp;lt;sendBroadcast(Landroid/content/Intent;)V
            </code>
            <code>invoke-virtual {v0, v2}, Landroid/content/Context;-&amp;lt;sendBroadcast(Landroid/content/Intent;)V
            </code>
            <classname>\com\getui\gis\sdk\a\a.smali</classname>
            <classname>\com\getui\gtc\a\e$a.smali</classname>
            <classname>\com\getui\gtc\d\a\d.smali</classname>
            <level>2</level>
            <slu>建议使用显式调用方式发送Intent;进程内发送消息建议使用LocalBroadcastManager;</slu>
        </api>
        <api>
            <name>弱随机数密钥</name>
            <summary>sdk弱随机数密钥</summary>
            <desc>4.4以下存在随机数破解漏洞风险</desc>
            <code>invoke-direct {v3}, Ljava/security/SecureRandom;-&amp;lt;&amp;gt;init&amp;lt;()V</code>
            <code>invoke-direct {v3}, Ljava/security/SecureRandom;-&amp;lt;&amp;gt;init&amp;lt;()V</code>
            <classname>\com\getui\gis\sdk\e\f.smali</classname>
            <classname>\com\getui\gs\ias\b\a.smali</classname>
            <level>1</level>
            <slu>建议复查下调用,避免使用弱随机数密钥</slu>
        </api>
        <api>
            <name>日志信息泄露风险</name>
            <summary>日志信息泄露风险</summary>
            <desc>日志信息泄露风险,建议去除日志信息</desc>
            <code>invoke-static {v0, v1}, Landroid/util/Log;-&amp;lt;d(Ljava/lang/String;Ljava/lang/String;)I</code>
            <code>invoke-static {v0, v1}, Landroid/util/Log;-&amp;lt;d(Ljava/lang/String;Ljava/lang/String;)I</code>
            <code>invoke-static {v0, v1}, Landroid/util/Log;-&amp;lt;d(Ljava/lang/String;Ljava/lang/String;)I</code>
            <code>invoke-static {v0, v1}, Landroid/util/Log;-&amp;lt;d(Ljava/lang/String;Ljava/lang/String;)I</code>
            <code>invoke-static {v0, v1}, Landroid/util/Log;-&amp;lt;d(Ljava/lang/String;Ljava/lang/String;)I</code>
            <code>invoke-static {v0, v1}, Landroid/util/Log;-&amp;lt;d(Ljava/lang/String;Ljava/lang/String;)I</code>
            <classname>\com\getui\gs\ias\e\m.smali</classname>
            <classname>\com\getui\gs\ias\e\m.smali</classname>
            <classname>\com\getui\gs\ias\floatwindow\k.smali</classname>
            <classname>\com\getui\gs\ias\floatwindow\k.smali</classname>
            <classname>\com\getui\gs\ias\floatwindow\k.smali</classname>
            <classname>\com\getui\gs\ias\floatwindow\k.smali</classname>
            <level>1</level>
            <slu>日志信息泄露,可能威胁用户敏感隐私数据安全。</slu>
        </api>
        <api>
            <name>动态加载其他程序</name>
            <summary>sdk动态加载其他程序</summary>
            <desc>sdk尝试进行动态加载其他程序</desc>
            <code>invoke-direct {v2, v1, v4, v5, v6}, Ldalvik/system/DexClassLoader;-&amp;lt;&amp;gt;init&amp;lt;(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V</code>
            <classname>\com\getui\gtc\b\c.smali</classname>
            <level>2</level>
            <slu>加载的APK、DEX文件时要进行合理的校验;动态加载的文件应该了解其加载的内容</slu>
        </api>
    </api-exploit>
    <url-safe>
        <http-code>http://%s/bd</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/geshu/sdk/getBaseConfs</http-code>
        <http-code>http://%s/geshu/sdk/getCompleteConfs</http-code>
        <http-code>http://%s/geshu/sdk/getAccessToken</http-code>
        <http-code>http://%s/geshu/sdk/uConfs</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ued</http-code>
        <http-code>http://%s/geshu/sdkStatistics/uud</http-code>
        <http-code>http://c-gtc.getui.com/api.php?format=json&amp;t=1</http-code>
        <http-code>http://b-gtc.getui.com/api.php?format=json&amp;t=1</http-code>
        <http-code>http://sdk.open.phone.igexin.com/api/addr.htm</http-code>
    </url-safe>
</coeus>

================================================
FILE: result/20191224-11-28-55/info.log
================================================
2019-12-24 11:28:55 manager.py[line:32] INFO start sdk scan..
2019-12-24 11:28:55 manager.py[line:46] INFO start unzip..
2019-12-24 11:28:55 manager.py[line:61] INFO unzip success.
2019-12-24 11:28:55 manager.py[line:66] INFO start decompile java.
2019-12-24 11:28:55 manager.py[line:101] INFO totalfiles:310
2019-12-24 11:29:00 manager.py[line:69] INFO decompile java success.
2019-12-24 11:29:00 manager.py[line:73] INFO start decompile smali.
2019-12-24 11:29:03 manager.py[line:75] INFO decompile smali success.
2019-12-24 11:29:03 manager.py[line:84] INFO start scan..
2019-12-24 11:29:03 base.py[line:14] INFO InfoScanner start.
2019-12-24 11:29:03 base.py[line:29] INFO InfoScanner end.
2019-12-24 11:29:03 base.py[line:14] INFO PolicyScanner start.
2019-12-24 11:29:03 policy.py[line:81] INFO permission in policy_permission_json not find:getui.permission.GetuiService.${applicationId}
2019-12-24 11:29:03 base.py[line:29] INFO PolicyScanner end.
2019-12-24 11:29:03 base.py[line:14] INFO ApiScanner start.
2019-12-24 11:29:04 base.py[line:29] INFO ApiScanner end.
2019-12-24 11:29:04 manager.py[line:96] INFO scan success.


================================================
FILE: result/20191224-11-28-55/report.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<sdkscan>
    <sdkinfo>
        <sdkname>getui_2.13.3.0-gisdk_3.1.9.1-gssdk_2.3.0.0</sdkname>
        <packageName>com.getui.onesdk</packageName>
        <version>onesdk-1.0.0</version>
        <sdksize>798KB</sdksize>
        <md5>e98e661ec3804cf3c9ed21a17fa9584b</md5>
        <targetsdk>targetSdkVersion 22</targetsdk>
        <minsdk>minSdkVersion 14</minsdk>
        <permission>android.permission.INTERNET</permission>
        <permission>android.permission.READ_PHONE_STATE</permission>
        <permission>android.permission.ACCESS_NETWORK_STATE</permission>
        <permission>android.permission.CHANGE_WIFI_STATE</permission>
        <permission>android.permission.ACCESS_WIFI_STATE</permission>
        <permission>android.permission.RECEIVE_BOOT_COMPLETED</permission>
        <permission>android.permission.WRITE_EXTERNAL_STORAGE</permission>
        <permission>android.permission.VIBRATE</permission>
        <permission>android.permission.GET_TASKS</permission>
        <permission>getui.permission.GetuiService.${applicationId}</permission>
        <permission>android.permission.WRITE_EXTERNAL_STORAGE</permission>
        <permission>android.permission.READ_PHONE_STATE</permission>
        <permission>android.permission.READ_EXTERNAL_STORAGE</permission>
        <permission>android.permission.SYSTEM_ALERT_WINDOW</permission>
    </sdkinfo>
    <base-policy>
        <target_sdk>
            <name>22</name>
            <summary>当前sdkversoin为22</summary>
            <desc>电信终端产业协会(TAF)发布的《移动应用软件高 API 等级预置与分发自律公约》要求,截止到2019年5月1日所有新发布的应用 API 必须为26或更高,2019年8月1日现有应用 API
                必须升级为26或更高。2019-11-1之后,上架谷歌Play商店要求应用的TargetSdkVersion>=28
            </desc>
            <level>2</level>
            <slu>联系sdk开发者,修改sdk版本号</slu>
        </target_sdk>
        <warning-permission>
            <name>android.permission.READ_PHONE_STATE</name>
            <summary>读取手机状态和身份</summary>
            <desc>工信部要求不可获取,其次是andoridQ版本将限制应用访问不可重设的设备识别码,如
                IMEI、序列号等,所有获取设备识别码的接口都增加了新的权限:READ_PRIVILEGED_PHONE_STATE,该权限需要系统签名的应用才能申请,意味着三方应用无法获取设备识别码。
            </desc>
            <level>2</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.RECEIVE_BOOT_COMPLETED</name>
            <summary>开机时自动启动</summary>
            <desc>允许应用程序在系统完成启动后即自行启动。这样会延长手机的启动时间,而且如果应用程序一直运行,会降低手机的整体速度。</desc>
            <level>1</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.WRITE_EXTERNAL_STORAGE</name>
            <summary>修改/删除SD卡中的内容</summary>
            <desc>允许应用程序写入SD卡。需用户授权,且不授权不能导致app失败,注意是否做好缺省。</desc>
            <level>2</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.GET_TASKS</name>
            <summary>检索当前运行的应用程序</summary>
            <desc>允许应用程序检索有关当前和最近运行的任务的信息。注意该项可能违反工信部要求,个人隐私部分,且不授权不能影响用户使用。</desc>
            <level>1</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.WRITE_EXTERNAL_STORAGE</name>
            <summary>修改/删除SD卡中的内容</summary>
            <desc>允许应用程序写入SD卡。需用户授权,且不授权不能导致app失败,注意是否做好缺省。</desc>
            <level>2</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.READ_PHONE_STATE</name>
            <summary>读取手机状态和身份</summary>
            <desc>工信部要求不可获取,其次是andoridQ版本将限制应用访问不可重设的设备识别码,如
                IMEI、序列号等,所有获取设备识别码的接口都增加了新的权限:READ_PRIVILEGED_PHONE_STATE,该权限需要系统签名的应用才能申请,意味着三方应用无法获取设备识别码。
            </desc>
            <level>2</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.READ_EXTERNAL_STORAGE</name>
            <summary>读取外存</summary>
            <desc>允许应用程序读SD卡,目前应工信部要求,需用户授权,且不授权不能导致app失败,注意是否做好缺省。</desc>
            <level>2</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
        <warning-permission>
            <name>android.permission.SYSTEM_ALERT_WINDOW</name>
            <summary>显示系统级警报</summary>
            <desc>允许应用程序显示系统警报窗口。恶意应用程序可借此掌控整个手机屏幕。</desc>
            <level>1</level>
            <slu>请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。</slu>
        </warning-permission>
    </base-policy>
    <api-policy>
        <api>
            <name>获取imei</name>
            <summary>sdk获取imei信息,需谨慎处理,否则APP可能被要求整改</summary>
            <desc>1.工信部要求2.android10及以上获取不到了3.imei权限部分需要注意兼容</desc>
            <code>invoke-virtual {v0}, Landroid/telephony/TelephonyManager;-&amp;lt;getDeviceId()Ljava/lang/String;
            </code>
            <code>invoke-virtual {v0}, Landroid/telephony/TelephonyManager;-&amp;lt;getDeviceId()Ljava/lang/String;
            </code>
            <code>invoke-virtual {v1}, Landroid/telephony/TelephonyManager;-&amp;lt;getDeviceId()Ljava/lang/String;
            </code>
            <classname>\com\getui\gis\sdk\e\m.smali</classname>
            <classname>\com\getui\gs\ias\e\x.smali</classname>
            <classname>\com\getui\gtc\d\a\d.smali</classname>
            <level>2</level>
            <slu>
                联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。
            </slu>
        </api>
        <api>
            <name>获取imsi</name>
            <summary>sdk获取imsi信息,需谨慎处理,否则APP可能被要求整改</summary>
            <desc>工信部要求,不得向第三方提供用户设备IMEI号、地理位置、imsi等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。</desc>
            <code>invoke-virtual {v0},
                Landroid/telephony/TelephonyManager;-&amp;lt;getSubscriberId()Ljava/lang/String;
            </code>
            <code>invoke-virtual {v0},
                Landroid/telephony/TelephonyManager;-&amp;lt;getSubscriberId()Ljava/lang/String;
            </code>
            <code>invoke-virtual {v0},
                Landroid/telephony/TelephonyManager;-&amp;lt;getSubscriberId()Ljava/lang/String;
            </code>
            <code>invoke-virtual {v1},
                Landroid/telephony/TelephonyManager;-&amp;lt;getSubscriberId()Ljava/lang/String;
            </code>
            <classname>\com\getui\gis\sdk\e\m.smali</classname>
            <classname>\com\getui\gs\ias\e\ac.smali</classname>
            <classname>\com\getui\gs\ias\e\x.smali</classname>
            <classname>\com\getui\gtc\d\a\d.smali</classname>
            <level>1</level>
            <slu>
                联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。
            </slu>
        </api>
        <api>
            <name>获取mac</name>
            <summary>sdk获取mac信息,需谨慎处理,否则APP可能被要求整改</summary>
            <desc>1.工信部要求,mac也属于个人信息,2.android9及以上系统会随机生成不同的 MAC</desc>
            <code>invoke-virtual {v0}, Landroid/net/wifi/WifiInfo;-&amp;lt;getMacAddress()Ljava/lang/String;</code>
            <code>invoke-virtual {v0}, Landroid/net/wifi/WifiInfo;-&amp;lt;getMacAddress()Ljava/lang/String;</code>
            <code>invoke-virtual {v0}, Landroid/net/wifi/WifiInfo;-&amp;lt;getMacAddress()Ljava/lang/String;</code>
            <classname>\com\getui\gis\sdk\e\m.smali</classname>
            <classname>\com\getui\gs\ias\e\x.smali</classname>
            <classname>\com\getui\gtc\e\l.smali</classname>
            <level>1</level>
            <slu>
                联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。
            </slu>
        </api>
        <api>
            <name>获取已安装程序列表</name>
            <summary>sdk尝试获取已安装程序列表 1.该信息属于个人隐私信息 2.工信部要求</summary>
            <desc>sdk获取app列表,极有可能导致被整改</desc>
            <code>invoke-virtual {v4, v0}, Landroid/content/pm/PackageManager;-&amp;lt;getInstalledPackages(I)Ljava/util/List;</code>
            <classname>\com\getui\gs\ias\e\x.smali</classname>
            <level>2</level>
            <slu>
                联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。
            </slu>
        </api>
    </api-policy>
    <api-exploit>
        <api>
            <name>动态注册Receiver权限设置漏洞风险</name>
            <summary>动态注册Receiver权限设置漏洞风险</summary>
            <desc>Receiver权限未设置,恶意程序可以发送相应的action广播危害应用安全</desc>
            <code>invoke-virtual {v0, v1, v2}, Landroid/content/Context;-&amp;lt;registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;</code>
            <code>invoke-virtual {p0, v1, v0}, Landroid/content/Context;-&amp;lt;registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;</code>
            <classname>\com\getui\gis\sdk\c.smali</classname>
            <classname>\com\getui\gs\sdk\b.smali</classname>
            <level>2</level>
            <slu>使用registerReceiver(BroadcastReceiver, IntentFilter, broadcastPermission, Handler)替代</slu>
        </api>
        <api>
            <name>广播信息泄露风险</name>
            <summary>广播信息泄露风险</summary>
            <desc>广播信息泄露风险</desc>
            <code>invoke-virtual {p1, v0}, Landroid/content/Context;-&amp;lt;sendBroadcast(Landroid/content/Intent;)V
            </code>
            <code>invoke-virtual {v1, v6}, Landroid/content/Context;-&amp;lt;sendBroadcast(Landroid/content/Intent;)V
            </code>
            <code>invoke-virtual {v0, v2}, Landroid/content/Context;-&amp;lt;sendBroadcast(Landroid/content/Intent;)V
            </code>
            <classname>\com\getui\gis\sdk\a\a.smali</classname>
            <classname>\com\getui\gtc\a\e$a.smali</classname>
            <classname>\com\getui\gtc\d\a\d.smali</classname>
            <level>2</level>
            <slu>建议使用显式调用方式发送Intent;进程内发送消息建议使用LocalBroadcastManager;</slu>
        </api>
        <api>
            <name>弱随机数密钥</name>
            <summary>sdk弱随机数密钥</summary>
            <desc>4.4以下存在随机数破解漏洞风险</desc>
            <code>invoke-direct {v3}, Ljava/security/SecureRandom;-&amp;lt;&amp;gt;init&amp;lt;()V</code>
            <code>invoke-direct {v3}, Ljava/security/SecureRandom;-&amp;lt;&amp;gt;init&amp;lt;()V</code>
            <classname>\com\getui\gis\sdk\e\f.smali</classname>
            <classname>\com\getui\gs\ias\b\a.smali</classname>
            <level>1</level>
            <slu>建议复查下调用,避免使用弱随机数密钥</slu>
        </api>
        <api>
            <name>动态加载其他程序</name>
            <summary>sdk动态加载其他程序</summary>
            <desc>sdk尝试进行动态加载其他程序</desc>
            <code>invoke-direct {v2, v1, v4, v5, v6}, Ldalvik/system/DexClassLoader;-&amp;lt;&amp;gt;init&amp;lt;(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V</code>
            <classname>\com\getui\gtc\b\c.smali</classname>
            <level>2</level>
            <slu>加载的APK、DEX文件时要进行合理的校验;动态加载的文件应该了解其加载的内容</slu>
        </api>
    </api-exploit>
    <url-safe>
        <http-code>http://%s/bd</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/geshu/sdk/getBaseConfs</http-code>
        <http-code>http://%s/geshu/sdk/getCompleteConfs</http-code>
        <http-code>http://%s/geshu/sdk/getAccessToken</http-code>
        <http-code>http://%s/geshu/sdk/uConfs</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ued</http-code>
        <http-code>http://%s/geshu/sdkStatistics/uud</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/geshu/sdk/getBaseConfs</http-code>
        <http-code>http://%s/geshu/sdk/getCompleteConfs</http-code>
        <http-code>http://%s/geshu/sdk/getAccessToken</http-code>
        <http-code>http://%s/geshu/sdk/uConfs</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ued</http-code>
        <http-code>http://%s/geshu/sdkStatistics/uud</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/geshu/sdk/getBaseConfs</http-code>
        <http-code>http://%s/geshu/sdk/getCompleteConfs</http-code>
        <http-code>http://%s/geshu/sdk/getAccessToken</http-code>
        <http-code>http://%s/geshu/sdk/uConfs</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ued</http-code>
        <http-code>http://%s/geshu/sdkStatistics/uud</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/geshu/sdk/getBaseConfs</http-code>
        <http-code>http://%s/geshu/sdk/getCompleteConfs</http-code>
        <http-code>http://%s/geshu/sdk/getAccessToken</http-code>
        <http-code>http://%s/geshu/sdk/uConfs</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ued</http-code>
        <http-code>http://%s/geshu/sdkStatistics/uud</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/geshu/sdk/getBaseConfs</http-code>
        <http-code>http://%s/geshu/sdk/getCompleteConfs</http-code>
        <http-code>http://%s/geshu/sdk/getAccessToken</http-code>
        <http-code>http://%s/geshu/sdk/uConfs</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ued</http-code>
        <http-code>http://%s/geshu/sdkStatistics/uud</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/geshu/sdk/getBaseConfs</http-code>
        <http-code>http://%s/geshu/sdk/getCompleteConfs</http-code>
        <http-code>http://%s/geshu/sdk/getAccessToken</http-code>
        <http-code>http://%s/geshu/sdk/uConfs</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ued</http-code>
        <http-code>http://%s/geshu/sdkStatistics/uud</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/geshu/sdk/getBaseConfs</http-code>
        <http-code>http://%s/geshu/sdk/getCompleteConfs</http-code>
        <http-code>http://%s/geshu/sdk/getAccessToken</http-code>
        <http-code>http://%s/geshu/sdk/uConfs</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ued</http-code>
        <http-code>http://%s/geshu/sdkStatistics/uud</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/geshu/sdk/getBaseConfs</http-code>
        <http-code>http://%s/geshu/sdk/getCompleteConfs</http-code>
        <http-code>http://%s/geshu/sdk/getAccessToken</http-code>
        <http-code>http://%s/geshu/sdk/uConfs</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ued</http-code>
        <http-code>http://%s/geshu/sdkStatistics/uud</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/geshu/sdk/getBaseConfs</http-code>
        <http-code>http://%s/geshu/sdk/getCompleteConfs</http-code>
        <http-code>http://%s/geshu/sdk/getAccessToken</http-code>
        <http-code>http://%s/geshu/sdk/uConfs</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ued</http-code>
        <http-code>http://%s/geshu/sdkStatistics/uud</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/geshu/sdk/getBaseConfs</http-code>
        <http-code>http://%s/geshu/sdk/getCompleteConfs</http-code>
        <http-code>http://%s/geshu/sdk/getAccessToken</http-code>
        <http-code>http://%s/geshu/sdk/uConfs</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ued</http-code>
        <http-code>http://%s/geshu/sdkStatistics/uud</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>https://%s/encryption/key/fetch</http-code>
        <http-code>http://%s/geshu/smartStatistics/upe</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ubi</http-code>
        <http-code>http://%s/geshu/sdkStatistics/bd</http-code>
        <http-code>http://%s/geshu/sdk/getBaseConfs</http-code>
        <http-code>http://%s/geshu/sdk/getCompleteConfs</http-code>
        <http-code>http://%s/geshu/sdk/getAccessToken</http-code>
        <http-code>http://%s/geshu/sdk/uConfs</http-code>
        <http-code>http://%s/geshu/sdkStatistics/ued</http-code>
        <http-code>http://%s/geshu/sdkStatistics/uud</http-code>
        <http-code>http://c-gtc.getui.com/api.php?format=json&amp;t=1</http-code>
        <http-code>http://b-gtc.getui.com/api.php?format=json&amp;t=1</http-code>
        <http-code>http://c-gtc.getui.com/api.php?format=json&amp;t=1</http-code>
        <http-code>http://b-gtc.getui.com/api.php?format=json&amp;t=1</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>http://%s/api.php?format=json&amp;t=1</http-code>
        <http-code>http://sdk.open.phone.igexin.com/api/addr.htm</http-code>
    </url-safe>
</sdkscan>

================================================
FILE: scanner/__init__.py
================================================
# coding: utf-8
__author__ = 'deff'


================================================
FILE: scanner/base.py
================================================
# coding: utf-8
import logging

__author__ = 'deff'


class BaseScanner:
    def __init__(self):
        pass

    # 做初始化操作
    def init_tag(self):
        logging.info(self.__class__.__name__ + " start.")

    # 静态扫描
    def scan(self):
        pass

    # 输出报告
    def report(self):
        pass

    # 结束操作
    def delete(self):
        pass

    def end_tag(self):
        logging.info(self.__class__.__name__ + " end.")

    # 可单独直接开始
    def start(self):
        pass


================================================
FILE: scanner/dynamic.py
================================================
# coding: utf-8
__author__ = 'deff'

from scanner.base import BaseScanner


##动态信息

class DynamicScanner(BaseScanner):
    def __init__(self):
        super().__init__()

    ##可单独直接开始
    def start(self):
        return ""

    # 做初始化操作
    def init(self):
        pass

    # 扫描
    def scan(self):
        pass

    # 输出报告
    def report(self):
        pass

    # 结束操作
    def delete(self):
        pass

    def __del__(self):
        pass


================================================
FILE: scanner/dynamicscanner/__init__.py
================================================
# coding: utf-8
__author__ = 'deff'


================================================
FILE: scanner/fuzz/__init__.py
================================================
# coding: utf-8
__author__ = 'deff'


# Andoid-afl.https://github.com/ele7enxxh/android-afl
# Fuzzing with libFuzzer.
# Droid: Android application fuzzing framework.https://github.com/ajinabraham/Droid-Application-Fuzz-Framework
# Writing the worlds worst Android fuzzer, and then improving it, by Gamozo 2018.
# Fuzzing Android: a recipe for uncovering vulnerabilities inside system components in Android, by Alexandru Blanda (BlackHat'15).
# DoApp (Denial of App): A smart Android Fuzzer for the future.http://www.iswatlab.eu/security-projects/doapp-denial-of-app-a-smart-android-fuzzer-for-the-future/
# Droid-FF.https://github.com/antojoseph/droid-ff


================================================
FILE: scanner/static.py
================================================
# coding: utf-8
from scanner.staticscanner.policy import PolicyScanner
from scanner.base import BaseScanner
from scanner.staticscanner.api import ApiScanner
from scanner.staticscanner.info import InfoScanner

__author__ = 'deff'


# 静态
class StaticScanner(BaseScanner):
    def __init__(self, is_aar):
        super().__init__()
        # 此处可以添加不同的规则扫描器
        self.static_scanners = []
        self.is_aar = is_aar
        self.init()

    # 做初始化操作
    def init(self):
        pass

    # 扫描
    def scan(self):
        pass

    # 输出报告
    def report(self):
        pass

    # 结束操作
    def delete(self):
        pass

    def __del__(self):
        pass

    # 可单独直接开始
    def start(self):
        if self.is_aar:
            self.static_scanners = [InfoScanner(), PolicyScanner(), ApiScanner()]
        else:
            self.static_scanners = [InfoScanner(), ApiScanner()]

        report = ""
        for scanner in self.static_scanners:
            scanner.init_tag()
            scanner.init()
            scanner.scan()
            report += scanner.report()
            scanner.delete()
            scanner.end_tag()

        return report


================================================
FILE: scanner/staticscanner/__init__.py
================================================
# coding: utf-8
__author__ = 'deff'


================================================
FILE: scanner/staticscanner/api.py
================================================
# coding: utf-8
import os
import re

from utils.tool import Tools

__author__ = 'deff'

from scanner.base import BaseScanner
import json
from utils.sdkinfo import sdkinfo
from config import config


# api审计
# 0. 隐私信息api :手机号/imei/imsi/mac/android id/gps/通讯录/应用程序列表/网页浏览记录(静态检测,后续动态可以进行hook对应函数检测)
# 0.1 http url链接检测
# 1. 调用非SDK接口,带来兼容性问题。(原理一致)https://developer.android.google.cn/distribute/best-practices/develop/restrictions-non-sdk-interfaces
# 2. 存在安全漏洞

# jar -> dex -> smali
# jar -> java (java备份,后续做函数逻辑处理)
# 本打算用jieba或用gensim来匹配,目前简单粗暴正则即可
# 缓存-一个文件一个文件扫-添加-输出报告
class ApiScanner(BaseScanner):
    def __init__(self):
        super().__init__()
        self.policy_api = {}
        self.exploit_api = {}

        self.report_policy_list = []
        self.report_exploit_list = []
        self.report_url_http = []

    # 做初始化操作
    def init(self):
        with open(config.POLICY_API_PATH, 'r', encoding="utf-8") as f:
            self.policy_api = json.load(f)

        with open(config.EXPLOIT_API_PATH, 'r', encoding="utf-8") as f2:
            self.exploit_api = json.load(f2)

    # 静态扫描
    def scan(self):
        for root, dirs, files in os.walk(config.smali_path):
            for file_name in files:
                if str(file_name).endswith(".smali"):
                    file_path = os.path.join(root, file_name)
                    class_name = file_path.split(config.smali_path)[1]
                    with open(file_path, 'r', encoding="utf-8") as smali_f:
                        lines = smali_f.readlines()
                        for line in lines:
                            line = line.strip()
                            if line.find('http:') > -1 or line.find('https:') > -1:
                                self.gethttp(file_path)
                            self._in_file_(line, class_name)

    def gethttp(self, file_path):
        java_path = file_path.replace("smali", "java")
        if os.path.exists(java_path):
            with open(java_path, 'r', encoding="utf-8") as java_f:
                lines = java_f.readlines()
                for line in lines:
                    line = line.strip()
                    if line.find("http:") < 0 and line.find("https:") < 0:
                        continue
                    urls = self.getmsg(line)
                    for url in urls:
                        if url not in self.report_url_http:
                            self.report_url_http.append(url)

    # 正则搞定
    def getmsg(self, line):
        pattern = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')  # 匹配模式
        url = re.findall(pattern, line)
        return url

    def _in_file_(self, line, class_name):
        for p_a in self.policy_api:
            for smalicode in p_a["smalicode"].values():
                if line.find(smalicode) > -1:
                    flag = False
                    for r in self.report_policy_list:
                        if r["name"] == p_a["name"]:
                            flag = True
                            r["classname"].append(class_name)
                            r["smalicode"].append(line)

                    if not flag:
                        classn = [class_name]
                        sn = [line]
                        pa_report = {
                            "name": p_a["name"],
                            "summary": p_a["summary"],
                            "desc": p_a["desc"],
                            "smalicode": sn,
                            "classname": classn,
                            "level": p_a["level"],
                            "sol": p_a["sol"],
                        }
                        self.report_policy_list.append(pa_report)

        for e_a in self.exploit_api:
            if line.find(e_a["smalicode"]) > -1:
                flag = False
                for r in self.report_exploit_list:
                    if r["name"] == e_a["name"]:
                        flag = True
                        r["classname"].append(class_name)
                        r["smalicode"].append(line)

                if not flag:
                    classn = [class_name]
                    sn = [line]
                    ea_report = {
                        "name": e_a["name"],
                        "summary": e_a["summary"],
                        "desc": e_a["desc"],
                        "smalicode": sn,
                        "classname": classn,
                        "level": e_a["level"],
                        "slu": e_a["sol"],
                    }
                    self.report_exploit_list.append(ea_report)

    # 输出报告
    def report(self):
        report = "<api-policy>"
        for report_policy in self.report_policy_list:
            report += "<api>" + "<name>" + report_policy["name"] + "</name>" + \
                      "<summary>" + report_policy["summary"] + "</summary>" + \
                      "<desc>" + report_policy["desc"] + "</desc>"
            for sm in report_policy["smalicode"]:
                report += "<code>" + Tools.xml_assent(sm) + "</code>"

            for cm in report_policy["classname"]:
                report += "<classname>" + cm + "</classname>"

            report += "<level>" + report_policy["level"] + "</level>" + \
                      "<slu>" + report_policy["sol"] + "</slu>" + \
                      "</api>"
        report += "</api-policy>"

        report += "<api-exploit>"
        if sdkinfo.allow_back_up:
            report += "<allowed>" + \
                      "<desc>" + "allowBackup标志为true" + "</desc>" + \
                      "<slu>" + "请将allowBackup设定为false,存在非法备份泄露等安全风险。" + "</slu>" + \
                      "</allowed>"
        if sdkinfo.debuggable:
            report += "<debuggable>" + \
                      "<desc>" + "debuggable标志为true" + "</desc>" + \
                      "<slu>" + "请将debuggable设定为false,存在非法调试等安全风险。" + "</slu>" + \
                      "</debuggable>"

        for report_exploit in self.report_exploit_list:
            report += "<api>" + "<name>" + report_exploit["name"] + "</name>" + \
                      "<summary>" + report_exploit["summary"] + "</summary>" + \
                      "<desc>" + report_exploit["desc"] + "</desc>"

            for sm in report_exploit["smalicode"]:
                report += "<code>" + Tools.xml_assent(sm) + "</code>"

            for cm in report_exploit["classname"]:
                report += "<classname>" + cm + "</classname>"

            report += "<level>" + report_exploit["level"] + "</level>" + \
                      "<slu>" + report_exploit["slu"] + "</slu>" + \
                      "</api>"
        report += "</api-exploit>"

        report += "<url-safe>"
        for url in self.report_url_http:
            report += "<http-code>" + Tools.xml_assent(url) + "</http-code>"
        report += "</url-safe>"
        return report

    # 结束操作
    def delete(self):
        del self.report_policy_list
        del self.report_exploit_list
        del self.policy_api
        del self.exploit_api

    def __del__(self):
        pass


if __name__ == '__main__':
    sdkinfo.sdk_path = r"E:\work\workPython\sdkscan\test\getui_2.13.3.0-gisdk_3.1.9.1-gssdk_2.3.0.0.aar"
    config.smali_path = r"E:\work\workPython\sdkscan\temp\20191223-21-14-19\decompile\smali"
    info = ApiScanner()
    info.init()
    info.scan()
    info.report()


================================================
FILE: scanner/staticscanner/info.py
================================================
# coding: utf-8
import re
import os

from utils.fileutils import FileUtils
from utils.md5 import Md5
from scanner.base import BaseScanner
from utils.sdkinfo import sdkinfo
from config import config

__author__ = 'deff'


##基础信息,权限,包名
class InfoScanner(BaseScanner):
    def __init__(self):
        super().__init__()

    # 做初始化操作
    def init(self):
        pass

    # 静态扫描
    def scan(self):
        sdkinfo.sdk_md5 = Md5.md5_file(sdkinfo.sdk_path)
        self.get_info()
        self.get_soname()
        self.get_other_libs()

    def get_info(self):
        sdkinfo.sdk_name = os.path.splitext(os.path.basename(sdkinfo.sdk_path))[0]
        sdkinfo.sdk_size = str(int(os.path.getsize(sdkinfo.sdk_path) / 1024))
        if not FileUtils.is_file_exit(config.xml_path):
            return

        with open(config.xml_path, 'r', encoding='utf-8') as file:
            lines = file.readlines()
            for line in lines:
                if line.find('package=') > -1:
                    re_name = re.compile(r"package=\"(.*?)\"\s")
                    sdkinfo.package_name = re_name.findall(line)[0]
                if line.find('versionName') > -1:
                    re_version = re.compile(r"versionName=\"(.*?)\"\s")
                    sdkinfo.version_name = re_version.findall(line)[0]
                if line.find('uses-permission') > -1:
                    re_per = re.compile(r"android:name=\"(.*?)\"\s")
                    permission = re_per.findall(line)[0]
                    sdkinfo.permissions.append(permission)
                if line.find('minSdkVersion') > -1:
                    re_min = re.compile(r"android:minSdkVersion=\"(.*?)\"\s")
                    sdkinfo.min_sdk_version = re_min.findall(line)[0]
                if line.find('targetSdkVersion') > -1:
                    re_target = re.compile(r"android:targetSdkVersion=\"(.*?)\"\s")
                    sdkinfo.target_sdk_version = re_target.findall(line)[0]
                if line.find("android:allowBackup") > -1:
                    re_allow = re.compile(r"android:allowBackup=\"(.*?)\"\s")
                    sdkinfo.allow_back_up = re_allow.findall(line)[0].lower() == "true"
                if line.find("android:debuggable") > -1:
                    re_debug = re.compile(r"android:debuggable=\"(.*?)\"\s")
                    sdkinfo.debuggable = re_debug.findall(line)[0].lower() == "true"
    # /jni/abi_name/name.so(其中“abi_name”是 Android 支持的 ABI 之一)
    def get_soname(self):
        if FileUtils.is_file_exit(config.jni_path):
            for dirpath, dirnames, filenames in os.walk(config.unzip_path):
                for filename in filenames:
                    if filename.endswith(".so"):
                        sdkinfo.sdk_soname = filename

    # libs
    def get_other_libs(self):
        if FileUtils.is_file_exit(config.libs_path):
            for home, dir, filenames in os.walk(config.libs_path):
                for filename in filenames:
                    sdkinfo.other_libs.append(filename)

    # /assets/
    def get_assets(self):
        if FileUtils.is_file_exit(config.assets_path):
            for home, dir, filenames in os.walk(config.libs_path):
                for filename in filenames:
                    sdkinfo.assets_files.append(filename)

    # 输出报告,xml格式(方便单独展示),json格式
    def report(self):
        report = "<sdkinfo>" + \
                 "<sdkname>" + sdkinfo.sdk_name + "</sdkname>" + \
                 "<packageName>" + sdkinfo.package_name + "</packageName>" + \
                 "<version>" + sdkinfo.version_name + "</version>" + \
                 "<sdksize>" + sdkinfo.sdk_size + "KB" + "</sdksize>" + \
                 "<md5>" + sdkinfo.sdk_md5 + "</md5>" + \
                 "<targetsdk>" + "targetSdkVersion " + sdkinfo.target_sdk_version + "</targetsdk>" + \
                 "<minsdk>" + "minSdkVersion " + sdkinfo.min_sdk_version + "</minsdk>"

        for permisson in sdkinfo.permissions:
            report += "<permission>" + permisson + "</permission>"

        report += "</sdkinfo>"
        return report

    # 结束操作
    def delete(self):
        pass

    def __del__(self):
        pass


if __name__ == '__main__':
    sdkinfo.sdk_path = r"E:\work\workPython\sdkscan\test\spartasdk-2.0.0.aar"
    config.xml_path = r"E:\work\workPython\sdkscan\temp\20191223-10-41-40\unzip\AndroidManifest.xml"
    info = InfoScanner()
    info.init()
    info.scan()
    info.report()


================================================
FILE: scanner/staticscanner/policy.py
================================================
# coding: utf-8
import linecache
import logging
import os
import json

from scanner.staticscanner.info import InfoScanner
from utils.fileutils import FileUtils
from scanner.base import BaseScanner
from utils.sdkinfo import sdkinfo
from config import config

__author__ = 'deff'


## 政策信息,权限,target api
class PolicyScanner(BaseScanner):
    def __init__(self):
        super().__init__()
        self.target_sdk = False
        self.so_64 = False
        self.policy = []
        self.permissions_policy = {}

    # 做初始化操作
    def init(self):

        with open(config.POLICY_PERMISSION_PATH, "r", encoding="utf-8") as f:
            self.permissions_policy = json.load(f)

            # 静态扫描

    def scan(self):
        if not FileUtils.is_file_exit(config.POLICY_PERMISSION_PATH):
            logging.error("POLICY_TXT not in.")
            return

        if FileUtils.is_file_exit(config.xml_path):
            self.find_permission_policy()
            if int(sdkinfo.target_sdk_version) < 28:
                self.target_sdk = True
        else:
            logging.info("no xml")

        self.so_policy()

        self.find_api_policy()

    def so_policy(self):
        if FileUtils.is_dir_exit(config.jni_path):
            arm_64 = os.path.join(config.jni_path, "arm64-v8a")
            x86_64 = os.path.join(config.jni_path, "x86_64")
            if not FileUtils.is_dir_exit(arm_64) and not FileUtils.is_dir_exit(x86_64):
                self.so_64 = True
        else:
            if FileUtils.is_dir_exit(config.unzip_path):
                arm_64_2 = os.path.join(config.unzip_path, "arm64-v8a")
                x86_64_2 = os.path.join(config.unzip_path, "x86_64")
                self.so_64 = FileUtils.is_dir_empty(arm_64_2) and FileUtils.is_dir_empty(x86_64_2)

    def find_permission_policy(self):

        for permission in sdkinfo.permissions:
            find_flag = False
            for pe_policy in self.permissions_policy.values():
                if pe_policy["name"] == permission:
                    find_flag = True
                    summary = pe_policy["summary"]
                    desc = pe_policy["desc"]
                    level = pe_policy["level"]
                    if int(level) > 0:
                        p = {
                            "name": permission,
                            "summary": summary,
                            "desc": desc,
                            "level": level
                        }
                        self.policy.append(p)
                    break
            if not find_flag:
                logging.info("permission in policy_permission_json not find:" + permission)
                # print("permission in policy_permission_json not find:" + permission)

    # 检测特殊api
    # 放置apiscanner中处理
    def find_api_policy(self):
        pass

    def get_msg(self, line):
        message = linecache.getline(config.POLICY_PERMISSION_PATH, line)
        return message[(message.find('\"') + 1):message.rfind('\"')]

    # 输出报告
    def report(self):
        report = "<base-policy>"
        if self.target_sdk:
            report += "<target_sdk>" + \
                      "<name>" + sdkinfo.target_sdk_version + "</name>" + \
                      "<summary>" + "当前sdkversoin为" + sdkinfo.target_sdk_version + "</summary>" + \
                      "<desc>" + "电信终端产业协会(TAF)发布的《移动应用软件高 API 等级预置与分发自律公约》要求,截止到2019年5月1日所有新发布的应用 API 必须为26或更高,2019年8月1日现有应用 API 必须升级为26或更高。2019-11-1之后,上架谷歌Play商店要求应用的TargetSdkVersion>=28 " + "</desc>" + \
                      "<level>" + " 2 " + "</level>" + \
                      "<slu>" + "联系sdk开发者,修改sdk版本号" + "</slu>" + \
                      "</target_sdk>"

        if self.so_64:
            report += "<warning-so>" + \
                      "<name>" + "缺少64位so,google上架有要求,国内似乎暂无影响" + "</name>" + \
                      "<summary>" + "存在so但缺乏64位架构" + "</summary>" + \
                      "<desc>" + "目前谷歌要求应用必须支持64位才能上架play商店,OEM厂商为了降低芯片的成本,可能只提供支持64位的版本,不考虑向下兼容。如果应用不适配支持64位,在后面的一些手机上将会无法运行。" + "</desc>" + \
                      "<level>" + " 0 " + "</level>" + \
                      "<slu>" + "联系sdk开发者,修改sdk版本号" + "</slu>" + \
                      "</warning-so>"

        for polic in self.policy:
            report += "<warning-permission>"
            report += "<name>" + polic["name"] + "</name>" + \
                      "<summary>" + polic["summary"] + "</summary>" + \
                      "<desc>" + polic["desc"] + "</desc>" + \
                      "<level>" + polic["level"] + "</level>" + \
                      "<slu>" + " 请仔细查看该sdk用途和说明,如必须该权限需在app中保证用户同意,且隐私数据做匿名化处理,以此符合中央网信办、工信部、公安部、市场监管总局要求。" + "</slu>"
            report += "</warning-permission>"
        report += "</base-policy>"

        return report

    # 结束操作
    def delete(self):
        del self.permissions_policy

    def __del__(self):
        pass


if __name__ == '__main__':
    sdkinfo.sdk_path = r"E:\work\workPython\sdkscan\test\getui_2.13.3.0-gisdk_3.1.9.1-gssdk_2.3.0.0.aar"
    config.xml_path = r"E:\work\workPython\sdkscan\temp\20191223-10-41-40\unzip\AndroidManifest.xml"
    info = InfoScanner()
    info.init()
    info.scan()
    info.report()
    polic = PolicyScanner()
    polic.init()
    polic.scan()
    polic.report()


================================================
FILE: script/__init__.py
================================================
# coding: utf-8
__author__ = 'deff'


================================================
FILE: script/exploit_api.json
================================================
[
  {
    "name": "webView绕过证书校验漏洞",
    "summary": "webView绕过证书校验漏洞",
    "desc": "webView绕过证书校验漏洞实现调用了handler.proceed()来忽略该证书错误,则会受到中间人攻击的威胁,可能导致隐私泄露",
    "javacode": "",
    "smalicode": "Landroid/webkit/SslErrorHandler;->proceed()V",
    "level": "2",
    "sol": "当发生证书认证错误时,采用默认的处理方法handler.cancel(),停止加载问题页面"
  },
  {
    "name": "忽略证书错误",
    "summary": "sdk忽略证书错误",
    "desc": "checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V",
    "javacode": "",
    "smalicode": "application/vnd.android.package-archive",
    "level": "2",
    "sol": "忽略证书错误继续加载和信任所有证书,将导致中间人攻击等严重安全隐患。"
  },
  {
    "name": "弱随机数密钥",
    "summary": "sdk弱随机数密钥",
    "desc": "4.4以下存在随机数破解漏洞风险",
    "javacode": "",
    "smalicode": "Ljava/security/SecureRandom;-><init>()V",
    "level": "1",
    "sol": "建议复查下调用,避免使用弱随机数密钥"
  },
  {
    "name": "动态加载其他程序",
    "summary": "sdk动态加载其他程序",
    "desc": "sdk尝试进行动态加载其他程序",
    "javacode": "",
    "smalicode": "Ldalvik/system/DexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V",
    "level": "2",
    "sol": "加载的APK、DEX文件时要进行合理的校验;动态加载的文件应该了解其加载的内容"
  },
  {
    "name": "运行其它可执行程序风险",
    "summary": "sdk运行其它可执行程序风险",
    "desc": "sdk运行其它可执行程序风险",
    "javacode": "",
    "smalicode": "Ljava/lang/ProcessBuilder;->start()Ljava/lang/Process;",
    "level": "2",
    "sol": "运行其它可执行程序风险,需要确认执行内容"
  },
  {
    "name": "动态注册Receiver权限设置漏洞风险",
    "summary": "动态注册Receiver权限设置漏洞风险",
    "desc": "Receiver权限未设置,恶意程序可以发送相应的action广播危害应用安全",
    "javacode": "",
    "smalicode": ";->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;",
    "level": "2",
    "sol": "使用registerReceiver(BroadcastReceiver, IntentFilter, broadcastPermission, Handler)替代"
  },
  {
    "name": "广播信息泄露风险",
    "summary": "广播信息泄露风险",
    "desc": "广播信息泄露风险",
    "javacode": "",
    "smalicode": "sendBroadcast(Landroid/content/Intent;)V",
    "level": "2",
    "sol": "建议使用显式调用方式发送Intent;进程内发送消息建议使用LocalBroadcastManager;"
  },
  {
    "name": "顺网后台发送安全漏洞",
    "summary": "sdk包含顺网后台发送安全漏洞",
    "desc": "sdk包含顺网后台网址http://mbl.shunwang.com/cfg",
    "javacode": "",
    "smalicode": "http://mbl.shunwang.com/cfg",
    "level": "2",
    "sol": "立即反馈,顺网网址说明存在漏洞后门"
  },
  {
    "name": "webview明文漏洞风险",
    "summary": "需要显式禁用setSavePassword(false),否则存在泄漏密码的风险",
    "desc": "使用webview时,要显式调用setSavePassword(false),禁止明文密码存储",
    "javacode": "",
    "smalicode": "Landroid/webkit/WebSettings;->setSavePassword(Z)V",
    "level": "2",
    "sol": "建议复查该api,若未显式调用setSavePassword(false),禁止明文密码存储。"
  },
  {
    "name": "日志信息泄露风险",
    "summary": "日志信息泄露风险",
    "desc": "日志信息泄露风险,建议去除日志信息",
    "javacode": "",
    "smalicode": "Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I",
    "level": "1",
    "sol": "日志信息泄露,可能威胁用户敏感隐私数据安全。"
  },
  {
    "name": "日志信息泄露风险",
    "summary": "日志信息泄露风险",
    "desc": "日志信息泄露风险,建议去除日志信息",
    "javacode": "",
    "smalicode": "Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I",
    "level": "1",
    "sol": "日志信息泄露,可能威胁用户敏感隐私数据安全。"
  }
]

================================================
FILE: script/hiddenapi-flags.csv
================================================
[File too large to display: 38.8 MB]

================================================
FILE: script/policy_api.json
================================================
[
  {
    "name": "获取imei",
    "summary": "sdk获取imei信息,需谨慎处理,否则APP可能被要求整改",
    "desc": "1.工信部要求2.android10及以上获取不到了3.imei权限部分需要注意兼容",
    "javacode": "",
    "smalicode": {
      "0": "Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String",
      "1": "Landroid/telephony/TelephonyManager;->getImei(I)Ljava/lang/String",
      "2": "Landroid/telephony/TelephonyManager;->getDeviceId(I)Ljava/lang/String"
    },
    "level": "2",
    "sol": "联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。"
  },
  {
    "name": "获取imsi",
    "summary": "sdk获取imsi信息,需谨慎处理,否则APP可能被要求整改",
    "desc": "工信部要求,不得向第三方提供用户设备IMEI号、地理位置、imsi等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。",
    "javacode": "",
    "smalicode": {
      "0": "Landroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String",
      "1": "Landroid/telephony/TelephonyManager;->getSubscriberId(I)Ljava/lang/String"
    },
    "level": "1",
    "sol": "联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。"
  },
  {
    "name": "获取mac",
    "summary": "sdk获取mac信息,需谨慎处理,否则APP可能被要求整改",
    "desc": "1.工信部要求,mac也属于个人信息,2.android9及以上系统会随机生成不同的 MAC",
    "javacode": "",
    "smalicode": {
      "0": "Landroid/net/wifi/WifiInfo;->getMacAddress()Ljava/lang/String;"
    },
    "level": "1",
    "sol": "联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。"
  },
  {
    "name": "获取android id",
    "summary": "sdk获取android id信息,需谨慎处理,否则APP可能被要求整改",
    "desc": "1.工信部要求,android id也属于个人信息,2.厂商定制系统的Bug:不同的设备可能会产生相同的ANDROID_ID 3.厂商定制系统的Bug:有些设备返回的值为null。 设备差异:对于CDMA设备,ANDROID_ID和TelephonyManager.getDeviceId() 返回相同的值。",
    "javacode": "",
    "smalicode": {
      "0": "Landroid/provider/Settings$Secure;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String"
    },
    "level": "1",
    "sol": "联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。"
  },
  {
    "name": "获取短信信息",
    "summary": "sdk尝试获取短信",
    "desc": "获取短信属于高危安全部分,建议重点知悉",
    "javacode": "",
    "smalicode": {
      "0": "content://sms/"
    },
    "level": "2",
    "sol": "联系sdk开发负责人或针对此进行处理,说明使用原因。在申请可收集个人信息的权限时,同步告知用户其目的"
  },
  {
    "name": "获取联系人信息",
    "summary": "sdk尝试获取联系人",
    "desc": "获取联系人信息属于高危安全部分,建议重点知悉",
    "javacode": "",
    "smalicode": {
      "0": "content://com.android.contacts/raw_contacts"
    },
    "level": "2",
    "sol": "联系sdk开发负责人或针对此进行处理,说明使用原因。在申请可收集个人信息的权限时,同步告知用户其目的"
  },
  {
    "name": "获取通讯信息",
    "summary": "sdk尝试获取通讯信息",
    "desc": "通讯信息属于高危安全部分,建议重点知悉",
    "javacode": "",
    "smalicode": {
      "0": "CallLog.Calls.CONTENT_URI|content://call_log/calls"
    },
    "level": "",
    "sol": "联系sdk开发负责人或针对此进行处理,说明使用原因。"
  },
  {
    "name": "获取已安装程序列表",
    "summary": "sdk尝试获取已安装程序列表 1.该信息属于个人隐私信息 2.工信部要求",
    "desc": "sdk获取app列表,极有可能导致被整改",
    "javacode": "",
    "smalicode": {
      "0": "Landroid/content/pm/PackageManager;->getInstalledPackages(I)Ljava/util/List;"
    },
    "level": "2",
    "sol": "联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。"
  },
  {
    "name": "获取已安装程序列表",
    "summary": "sdk尝试获取已安装程序列表 1.该信息属于个人隐私信息 2.工信部要求",
    "desc": "sdk获取app列表,极有可能导致被整改",
    "javacode": "",
    "smalicode": {
      "0": "Landroid/content/pm/PackageManager;->getInstalledPackages(I)Ljava/util/List;",
      "1": "Landroid/content/pm/PackageManager;->queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List",
      "2": "Landroid/content/pm/PackageManager;->getPackagesForUid(I)Ljava/util/List"
    },
    "level": "2",
    "sol": "联系sdk开发负责人或针对此进行处理,说明使用原因。工信部要求,不得向第三方提供用户设备IMEI号、地理位置等个人信息,及sdk不得私自传输。若必须,请经用户同意,且做匿名化处理,并附有隐私政策说明。且若用户拒绝,不能影响app正常业务使用。"
  }
]


================================================
FILE: script/policy_permission.json
================================================
{
  "1": {
    "name": "android.permission.READ_PHONE_STATE",
    "summary": "读取手机状态和身份",
    "desc": "工信部要求不可获取,其次是andoridQ版本将限制应用访问不可重设的设备识别码,如 IMEI、序列号等,所有获取设备识别码的接口都增加了新的权限:READ_PRIVILEGED_PHONE_STATE,该权限需要系统签名的应用才能申请,意味着三方应用无法获取设备识别码。",
    "level": "2"
  },
  "2": {
    "name": "android.permission.BRICK",
    "summary": "永久停用手机",
    "desc": "允许应用程序永久停用整个手机,属于工信部要求范围。",
    "level": "2"
  },
  "3": {
    "name": "android.permission.BROADCAST_SMS",
    "summary": "发送短信收到的广播",
    "desc": "允许应用程序广播已收到短信的通知。请确认该sdk能使用该功能,否则违反工信部要求。",
    "level": "2"
  },
  "4": {
    "name": "android.permission.CALL_PHONE",
    "summary": "直接拨打电话号码",
    "desc": "允许应用程序在您不介入的情况下拨打电话,注意该项可能违反工信部要求。",
    "level": "2"
  },
  "5": {
    "name": "android.permission.CALL_PRIVILEGED",
    "summary": "直接呼叫任何电话号码",
    "desc": "允许应用程序在您不介入的情况下拨打任何电话(包括紧急呼救),注意该项可能违反工信部要求。",
    "level": "2"
  },
  "6": {
    "name": "android.permission.DELETE_CACHE_FILES",
    "summary": "删除其他应用程序的缓存",
    "desc": "允许应用程序删除缓存文件。注意该项可能违反工信部要求。",
    "level": "2"
  },
  "7": {
    "name": "android.permission.DEVICE_POWER",
    "summary": "开机或关机",
    "desc": "允许应用程序打开或关闭手机。注意该项可能违反工信部要求。",
    "level": "2"
  },
  "8": {
    "name": "android.permission.DIAGNOSTIC",
    "summary": "读取/写入诊断所拥有的资源",
    "desc": "允许应用程序读取/写入诊断组所拥有的任何资源(例如,/dev 中的文件)。这可能会影响系统稳定性和安全性。此权限仅供制造商或运营商诊断硬件问题。",
    "level": "2"
  },
  "9": {
    "name": "android.permission.INJECT_EVENTS",
    "summary": "按键和控制按钮",
    "desc": "允许应用程序将其自己的输入活动(按键等)提供给其他应用程序。恶意应用程序可借此掌控手机。注意该项可能违反工信部要求",
    "level": "2"
  },
  "10": {
    "name": "android.permission.MASTER_CLEAR",
    "summary": "恢复出厂设置",
    "desc": "允许应用程序将系统恢复为出厂设置,即清除所有数据、配置以及所安装的应用程序。",
    "level": "2"
  },
  "11": {
    "name": "android.permission.MOUNT_FORMAT_FILESYSTEMS",
    "summary": "格式化外部存储设备",
    "desc": "允许应用程序格式化可移除的存储设备。注意该项可能违反工信部要求",
    "level": "2"
  },
  "12": {
    "name": "android.permission.PROCESS_OUTGOING_CALLS",
    "summary": "拦截外拨电话",
    "desc": "允许应用程序处理外拨电话或更改要拨打的号码。注意该项可能违反工信部要求。",
    "level": "2"
  },
  "13": {
    "name": "android.permission.READ_CALL_LOG",
    "summary": "读取通话记录",
    "desc": "允许应用程序读取通话记录。此为高危风险,注意该项可能违反工信部要求",
    "level": "2"
  },
  "14": {
    "name": "android.permission.READ_CONTACTS",
    "summary": "读取联系人数据",
    "desc": "允许应用程序读取您手机上存储的所有联系人(地址)数据。注意该项可能违反工信部要求",
    "level": "2"
  },
  "15": {
    "name": "android.permission.READ_EXTERNAL_STORAGE",
    "summary": "读取外存",
    "desc": "允许应用程序读SD卡,目前应工信部要求,需用户授权,且不授权不能导致app失败,注意是否做好缺省。",
    "level": "2"
  },
  "16": {
    "name": "android.permission.READ_INPUT_STATE",
    "summary": "记录您键入的内容和执行的操作",
    "desc": "允许应用程序查看您按的键,即使在与其他应用程序交互(例如输入密码)时也不例外。普通应用程序从不需要使用此权限。",
    "level": "2"
  },
  "17": {
    "name": "android.permission.READ_SMS",
    "summary": "读取短信或彩信",
    "desc": "允许应用程序读取您的手机或 SIM 卡中存储的短信。注意该项可能违反工信部要求",
    "level": "2"
  },
  "18": {
    "name": "android.permission.READ_USER_DICTIONARY",
    "summary": "读取用户定义的词典",
    "desc": "允许应用程序读取用户在用户词典中存储的任意私有字词、名称和短语。注意该项可能违反工信部要求",
    "level": "2"
  },
  "19": {
    "name": "android.permission.RECEIVE_MMS",
    "summary": "接收彩信",
    "desc": "允许应用程序接收和处理彩信。注意该项可能违反工信部要求",
    "level": "2"
  },
  "20": {
    "name": "android.permission.RECEIVE_SMS",
    "summary": "接收短信",
    "desc": "允许应用程序接收和处理短信。注意该项可能违反工信部要求",
    "level": "2"
  },
  "21": {
    "name": "android.permission.RECEIVE_WAP_PUSH",
    "summary": "接收 WAP",
    "desc": "允许应用程序接收和处理 WAP 信息。注意该项可能违反工信部要求",
    "level": "2"
  },
  "22": {
    "name": "android.permission.RECORD_AUDIO",
    "summary": "录音",
    "desc": "允许应用程序访问录音路径。注意该项可能违反工信部要求,个人隐私部分。",
    "level": "2"
  },
  "23": {
    "name": "android.permission.SEND_SMS",
    "summary": "发送短信",
    "desc": "允许应用程序发送短信。注意该项可能违反工信部要求,个人隐私部分。",
    "level": "2"
  },
  "24": {
    "name": "android.permission.WRITE_CALENDAR",
    "summary": "添加或修改日历活动以及向邀请对象发送电子邮件",
    "desc": "允许应用程序添加或更改日历中的活动,这可能会向邀请对象发送电子邮件。注意该项可能违反工信部要求,个人隐私部分。",
    "level": "2"
  },
  "25": {
    "name": "android.permission.WRITE_CALL_LOG",
    "summary": "写入通话记录",
    "desc": "允许应用程序写 contacts data.注意该项可能违反工信部要求,个人隐私部分。",
    "level": "2"
  },
  "26": {
    "name": "android.permission.WRITE_CONTACTS",
    "summary": "写入联系人数据",
    "desc": "允许应用程序修改您手机上存储的联系人(地址)数据。注意该项可能违反工信部要求,个人隐私部分。",
    "level": "2"
  },
  "27": {
    "name": "android.permission.WRITE_EXTERNAL_STORAGE",
    "summary": "修改/删除SD卡中的内容",
    "desc": "允许应用程序写入SD卡。需用户授权,且不授权不能导致app失败,注意是否做好缺省。",
    "level": "2"
  },
  "28": {
    "name": "android.permission.WRITE_SECURE_SETTINGS",
    "summary": "修改安全系统设置",
    "desc": "允许应用程序修改系统的安全设置数据。普通应用程序不能使用此权限。",
    "level": "2"
  },
  "29": {
    "name": "android.permission.WRITE_SETTINGS",
    "summary": "修改全局系统设置",
    "desc": "允许应用程序修改系统设置方面的数据。恶意应用程序可借此破坏您的系统配置。",
    "level": "2"
  },
  "30": {
    "name": "android.permission.WRITE_SMS",
    "summary": "编辑短信或彩信",
    "desc": "允许应用程序写入手机或 SIM 卡中存储的短信。注意该项可能违反工信部要求,个人隐私部分。",
    "level": "2"
  },
  "31": {
    "name": "com.android.browser.permission.READ_HISTORY_BOOKMARKS",
    "summary": "",
    "desc": "允许应用程序读取浏览器历史记录。注意该项可能违反工信部要求,个人隐私部分。",
    "level": "2"
  },
  "32": {
    "name": "com.android.browser.permission.WRITE_HISTORY_BOOKMARKS",
    "summary": "写入浏览器历史和书签记录",
    "desc": "允许应用程序写入浏览器历史和书签记录。注意该项可能违反工信部要求,个人隐私部分。",
    "level": "2"
  },
  "33": {
    "name": "com.android.voicemail.permission.ADD_VOICEMAIL",
    "summary": "",
    "desc": "允许应用程序增加语音邮件。注意该项可能违反工信部要求,个人隐私部分。",
    "level": "2"
  },
  "34": {
    "name": "android.permission.ADD_SYSTEM_SERVICE",
    "summary": "",
    "desc": "允许程序发布系统级服务。注意该项可能违反工信部要求,个人隐私部分。",
    "level": "2"
  },
  "35": {
    "name": "android.permission.READ_OWNER_DATA",
    "summary": "读取基本信息",
    "desc": "允许程序读取所有者数据。注意该项可能违反工信部要求,个人隐私部分。",
    "level": "2"
  },
  "36": {
    "name": "com.android.voicemail.permission.ADD_VOICEMAIL",
    "summary": "",
    "desc": "允许应用程序增加语音邮件。注意该项可能违反工信部要求,个人隐私部分。",
    "level": "2"
  },
  "37": {
    "name": "android.permission.ACCESS_COARSE_LOCATION",
    "summary": "大概位置",
    "desc": "访问大概的位置源(例如蜂窝网络数据库)以确定手机的大概位置(如果可以)。注意该项可能违反工信部要求,个人隐私部分,且高版本存在其他定位要求。",
    "level": "2"
  },
  "38": {
    "name": "android.permission.ACCESS_FINE_LOCATION",
    "summary": "精准的(GPS)位置",
    "desc": "访问精准的位置源,例如手机上的全球定位系统(如果有)。注意该项可能违反工信部要求,个人隐私部分,且高版本存在其他定位要求。",
    "level": "2"
  },
  "39": {
    "name": "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS",
    "summary": "访问额外的位置信息提供程序命令",
    "desc": "访问额外的位置信息提供程序命令。注意该项可能违反工信部要求,个人隐私部分,且高版本存在其他定位要求。",
    "level": "2"
  },
  "40": {
    "name": "android.permission.ACCESS_MOCK_LOCATION",
    "summary": "使用模拟地点来源进行测试",
    "desc": "创建模拟地点来源进行测试。注意该项可能违反工信部要求,个人隐私部分,且高版本存在其他定位要求。",
    "level": "1"
  },
  "41": {
    "name": "android.permission.BATTERY_STATS",
    "summary": "修改电池统计信息",
    "desc": "允许修改收集的电池使用情况统计信息。普通应用程序不能使用此权限。",
    "level": "1"
  },
  "42": {
    "name": "android.permission.BLUETOOTH",
    "summary": "创建蓝牙连接",
    "desc": "允许应用程序查看本地蓝牙手机的配置,以及建立或接受与配对设备的连接。注意该项可能违反工信部要求,个人隐私部分。",
    "level": "2"
  },
  "43": {
    "name": "android.permission.BROADCAST_PACKAGE_REMOVED",
    "summary": "发送包删除的广播",
    "desc": "允许应用程序广播已删除某应用程序包的通知。恶意应用程序可借此终止任何正在运行的其他应用程序。",
    "level": "1"
  },
  "44": {
    "name": "android.permission.BROADCAST_STICKY",
    "summary": "发送置顶广播",
    "desc": "允许应用程序发送顽固广播,这些广播在结束后仍会保留。恶意应用程序可能会借此使手机耗用太多内存,从而降低其速度或稳定性。",
    "level": "1"
  },
  "45": {
    "name": "android.permission.CAMERA",
    "summary": "拍照",
    "desc": "允许应用程序使用相机拍照,注意该项可能违反工信部要求,个人隐私部分,且不授权不能影响用户使用。",
    "level": "2"
  },
  "46": {
    "name": "android.permission.CHANGE_COMPONENT_ENABLED_STATE",
    "summary": "启用或停用应用程序组件",
    "desc": "允许应用程序更改是否启用其他应用程序的组件。恶意应用程序可借此停用重要的手机功能。使用此权限时务必谨慎,因为这可能导致应用程序组件进入不可用、不一致或不稳定的状态。",
    "level": "1"
  },
  "47": {
    "name": "android.permission.CHANGE_WIFI_MULTICAST_STATE",
    "summary": "允许接收WLAN多播",
    "desc": "允许应用程序接收并非直接向您的设备发送的数据包。这样在查找附近提供的服务时很有用。这种操作所耗电量大于非多播模式。",
    "level": "1"
  },
  "48": {
    "name": "android.permission.CLEAR_APP_USER_DATA",
    "summary": "删除其他应用程序的数据",
    "desc": "允许应用程序清除用户数据。注意该项可能违反工信部要求,个人隐私部分,且不授权不能影响用户使用。",
    "level": "1"
  },
  "49": {
    "name": "android.permission.CONTROL_LOCATION_UPDATES",
    "summary": "控制位置更新通知",
    "desc": "允许启用/停用来自收音机的位置更新通知。普通应用程序不能使用此权限。",
    "level": "1"
  },
  "50": {
    "name": "android.permission.GET_TASKS",
    "summary": "检索当前运行的应用程序",
    "desc": "允许应用程序检索有关当前和最近运行的任务的信息。注意该项可能违反工信部要求,个人隐私部分,且不授权不能影响用户使用。",
    "level": "1"
  },
  "51": {
    "name": "android.permission.INSTALL_LOCATION_PROVIDER",
    "summary": "允许安装位置信息提供程序",
    "desc": "创建模拟地点来源进行测试。恶意应用程序可能利用此选项覆盖由真实地点来源(如 GPS 或网络提供商)所传回的地点和/或状态,或者监视您的位置并将其提供给外部来源。",
    "level": "1"
  },
  "52": {
    "name": "android.permission.INSTALL_PACKAGES",
    "summary": "直接安装应用程序",
    "desc": "允许应用程序安装全新的或更新的 Android 包。注意该项可能违反工信部要求,请谨慎处理。",
    "level": "2"
  },
  "53": {
    "name": "android.permission.MODIFY_PHONE_STATE",
    "summary": "修改手机状态",
    "desc": "允许应用程序控制设备的电话功能。拥有此权限的应用程序可自行切换网络、打开和关闭无线通信等,而不会通知您。",
    "level": "2"
  },
  "54": {
    "name": "android.permission.READ_CALENDAR",
    "summary": "读取日历活动",
    "desc": "允许应用程序读取您手机上存储的所有日历活动。恶意应用程序可借此将您的日历活动发送给其他人。",
    "level": "2"
  },
  "55": {
    "name": "android.permission.ACCESS_CHECKIN_PROPERTIES",
    "summary": "访问检入属性",
    "desc": "允许对检入服务上传的属性进行读/写访问。普通应用程序不能使用此权限。",
    "level": "0"
  },
  "56": {
    "name": "android.permission.ACCESS_NETWORK_STATE",
    "summary": "查看网络状态",
    "desc": "允许应用程序查看所有网络的状态。",
    "level": "0"
  },
  "57": {
    "name": "android.permission.ACCESS_SURFACE_FLINGER",
    "summary": "访问 SurfaceFlinger",
    "desc": "允许应用程序使用 SurfaceFlinger 低级别功能。",
    "level": "0"
  },
  "58": {
    "name": "android.permission.ACCESS_WIFI_STATE",
    "summary": "查看 WLAN 状态",
    "desc": "允许应用程序查看有关 WLAN 状态的信息。",
    "level": "0"
  },
  "59": {
    "name": "android.permission.ACCOUNT_MANAGER",
    "summary": "作为帐户身份验证程序",
    "desc": "允许应用程序使用 AccountManager 的帐户身份验证程序功能,包括创建帐户以及获取和设置其密码。",
    "level": "0"
  },
  "60": {
    "name": "android.permission.AUTHENTICATE_ACCOUNTS",
    "summary": "作为帐户身份验证程序",
    "desc": "允许应用程序使用 AccountManager 的帐户身份验证程序功能,包括创建帐户以及获取和设置其密码。",
    "level": "0"
  },
  "61": {
    "name": "android.permission.BIND_ACCESSIBILITY_SERVICE",
    "summary": "",
    "desc": "Must be required by an AccessibilityService, to ensure that only the system can bind to it.",
    "level": "0"
  },
  "62": {
    "name": "android.permission.BIND_APPWIDGET",
    "summary": "选择窗口小部件",
    "desc": "允许应用程序告诉系统哪个应用程序可以使用哪些窗口小部件。具有该权限的应用程序可以允许其他应用程序访问个人数据。普通应用程序不能使用此权限。",
    "level": "0"
  },
  "63": {
    "name": "android.permission.BIND_DEVICE_ADMIN",
    "summary": "与设备管理器交互",
    "desc": "允许持有对象将意向发送到设备管理器。普通的应用程序一律无需此权限。",
    "level": "0"
  },
  "64": {
    "name": "android.permission.BIND_INPUT_METHOD",
    "summary": "绑定至输入法",
    "desc": "允许手机用户绑定至输入法的顶级界面。普通应用程序从不需要使用此权限。",
    "level": "0"
  },
  "65": {
    "name": "android.permission.BIND_NOTIFICATION_LISTENER_SERVICE",
    "summary": "",
    "desc": "Must be required by an NotificationListenerService, to ensure that only the system can bind to it.",
    "level": "0"
  },
  "66": {
    "name": "android.permission.BIND_REMOTEVIEWS",
    "summary": "",
    "desc": "Must be required by a RemoteViewsService, to ensure that only the system can bind to it.",
    "level": "0"
  },
  "67": {
    "name": "android.permission.BIND_TEXT_SERVICE",
    "summary": "",
    "desc": "Must be required by a TextService (e.g.",
    "level": "0"
  },
  "68": {
    "name": "android.permission.BIND_VPN_SERVICE",
    "summary": "",
    "desc": "Must be required by an VpnService, to ensure that only the system can bind to it.",
    "level": "0"
  },
  "69": {
    "name": "android.permission.BIND_WALLPAPER",
    "summary": "绑定到壁纸",
    "desc": "允许手机用户绑定到壁纸的顶级界面。应该从不需要将此权限授予普通应用程序。",
    "level": "0"
  },
  "70": {
    "name": "android.permission.BLUETOOTH_ADMIN",
    "summary": "蓝牙管理",
    "desc": "允许应用程序配置本地蓝牙手机,以及发现远程设备并与其配对。",
    "level": "0"
  },
  "71": {
    "name": "android.permission.BROADCAST_WAP_PUSH",
    "summary": "",
    "desc": "Allows an application to broadcast a WAP PUSH receipt notification.",
    "level": "0"
  },
  "72": {
    "name": "android.permission.CHANGE_CONFIGURATION",
    "summary": "更改用户界面设置",
    "desc": "允许应用程序更改当前配置,例如语言设置或整体的字体大小。",
    "level": "0"
  },
  "73": {
    "name": "android.permission.CHANGE_NETWORK_STATE",
    "summary": "更改网络连接性",
    "desc": "允许应用程序更改网络连接的状态。",
    "level": "0"
  },
  "74": {
    "name": "android.permission.CHANGE_WIFI_STATE",
    "summary": "更改 WLAN 状态",
    "desc": "允许应用程序连接到 WLAN 接入点以及与 WLAN 接入点断开连接,并对配置的 WLAN 网络进行更改。",
    "level": "0"
  },
  "75": {
    "name": "android.permission.CLEAR_APP_CACHE",
    "summary": "删除所有应用程序缓存数据",
    "desc": "允许应用程序通过删除应用程序缓存目录中的文件释放手机存储空间。通常此权限只适用于系统进程。",
    "level": "0"
  },
  "76": {
    "name": "android.permission.DELETE_CACHE_FILES",
    "summary": "删除其他应用程序的缓存",
    "desc": "允许应用程序删除缓存文件。",
    "level": "2"
  },
  "77": {
    "name": "android.permission.DEVICE_POWER",
    "summary": "开机或关机",
    "desc": "允许应用程序打开或关闭手机。",
    "level": "2"
  },
  "78": {
    "name": "android.permission.DIAGNOSTIC",
    "summary": "读取/写入诊断所拥有的资源",
    "desc": "允许应用程序读取/写入诊断组所拥有的任何资源(例如,/dev 中的文件)。这可能会影响系统稳定性和安全性。此权限仅供制造商或运营商诊断硬件问题。",
    "level": "2"
  },
  "79": {
    "name": "android.permission.DISABLE_KEYGUARD",
    "summary": "停用键锁",
    "desc": "允许应用程序停用键锁和任何关联的密码安全设置。例如,在手机上接听电话时停用键锁,在通话结束后重新启用键锁。",
    "level": "0"
  },
  "80": {
    "name": "android.permission.DUMP",
    "summary": "检索系统内部状态",
    "desc": "允许应用程序检索系统的内部状态。恶意应用程序可借此检索它们本不需要的各种保密信息和安全信息。",
    "level": "0"
  },
  "81": {
    "name": "android.permission.EXPAND_STATUS_BAR",
    "summary": "展开/收拢状态栏",
    "desc": "允许应用程序展开或收拢状态栏。",
    "level": "0"
  },
  "82": {
    "name": "android.permission.FACTORY_TEST",
    "summary": "在出厂测试模式下运行",
    "desc": "作为一项低级制造商测试来运行,从而允许对手机硬件进行完全访问。此权限仅当手机在制造商测试模式下运行时才可用。",
    "level": "0"
  },
  "83": {
    "name": "android.permission.FLASHLIGHT",
    "summary": "控制闪光灯",
    "desc": "允许应用程序控制闪光灯。",
    "level": "0"
  },
  "84": {
    "name": "android.permission.FORCE_BACK",
    "summary": "强制应用程序关闭",
    "desc": "允许应用程序强制前端的任何活动关闭并重新开始。普通应用程序从不需要使用此权限。",
    "level": "0"
  },
  "85": {
    "name": "android.permission.GET_ACCOUNTS",
    "summary": "发现已知帐户",
    "desc": "允许应用程序获取手机已知的帐户列表。",
    "level": "0"
  },
  "86": {
    "name": "android.permission.GET_PACKAGE_SIZE",
    "summary": "计算应用程序存储空间",
    "desc": "允许应用程序检索其代码、数据和缓存大小",
    "level": "0"
  },
  "87": {
    "name": "android.permission.GET_TOP_ACTIVITY_INFO",
    "summary": "",
    "desc": "Allows an application to retrieve private information about the current top activity, such as any assist context it can provide.",
    "level": "0"
  },
  "88": {
    "name": "android.permission.GLOBAL_SEARCH",
    "summary": "全局搜索",
    "desc": "允许应用程序使用全局搜索。",
    "level": "0"
  },
  "89": {
    "name": "android.permission.HARDWARE_TEST",
    "summary": "测试硬件",
    "desc": "允许应用程序控制各外围设备以进行硬件测试。",
    "level": "0"
  },
  "90": {
    "name": "android.permission.INTERNAL_SYSTEM_WINDOW",
    "summary": "显示未授权的窗口",
    "desc": "允许创建专用于内部系统用户界面的窗口。普通应用程序不能使用此权限。",
    "level": "0"
  },
  "91": {
    "name": "android.permission.INTERNET",
    "summary": "访问网络",
    "desc": "允许程序访问网络.",
    "level": "0"
  },
  "92": {
    "name": "android.permission.KILL_BACKGROUND_PROCESSES",
    "summary": "结束后台进程",
    "desc": "无论内存资源是否紧张,都允许应用程序结束其他应用程序的后台进程。",
    "level": "0"
  },
  "93": {
    "name": "android.permission.LOCATION_HARDWARE",
    "summary": "",
    "desc": "允许用户使用位置信息,甚至包括一些api the geofencing api.",
    "level": "0"
  },
  "94": {
    "name": "android.permission.MANAGE_ACCOUNTS",
    "summary": "管理帐户列表",
    "desc": "允许应用程序执行添加、删除帐户及删除其密码之类的操作。",
    "level": "0"
  },
  "95": {
    "name": "android.permission.MANAGE_APP_TOKENS",
    "summary": "管理应用程序令牌",
    "desc": "允许应用程序创建和管理自己的令牌,从而绕开其常规的 Z 方向。普通应用程序从不需要使用此权限。",
    "level": "0"
  },
  "96": {
    "name": "android.permission.MODIFY_AUDIO_SETTINGS",
    "summary": "更改您的音频设置",
    "desc": "允许应用程序修改整个系统的音频设置,如音量和路由。",
    "level": "0"
  },
  "97": {
    "name": "android.permission.MOUNT_UNMOUNT_FILESYSTEMS",
    "summary": "装载和卸载文件系统",
    "desc": "允许应用程序装载和卸载可移动存储器的文件系统。",
    "level": "0"
  },
  "98": {
    "name": "android.permission.NFC",
    "summary": "",
    "desc": "使用NFC功能",
    "level": "0"
  },
  "99": {
    "name": "android.permission.READ_LOGS",
    "summary": "读取系统日志文件",
    "desc": "允许应用程序从系统的各日志文件中读取信息。这样应用程序可以发现您的手机使用情况,但这些信息不应包含任何个人信息或保密信息。",
    "level": "0"
  },
  "100": {
    "name": "android.permission.READ_PROFILE",
    "summary": "",
    "desc": "允许应用程序读 personal profile data.",
    "level": "0"
  },
  "101": {
    "name": "android.permission.READ_SOCIAL_STREAM",
    "summary": "",
    "desc": "允许应用程序读 social stream.",
    "level": "0"
  },
  "102": {
    "name": "android.permission.READ_SYNC_SETTINGS",
    "summary": "读取同步设置",
    "desc": "允许应用程序读取同步设置,例如是否为联系人启用同步。",
    "level": "0"
  },
  "103": {
    "name": "android.permission.READ_SYNC_STATS",
    "summary": "读取同步统计信息",
    "desc": "允许应用程序读取同步统计信息;例如已发生的同步历史记录。",
    "level": "0"
  },
  "104": {
    "name": "android.permission.REBOOT",
    "summary": "强行重新启动手机",
    "desc": "允许应用程序强行重新启动手机。",
    "level": "1"
  },
  "105": {
    "name": "android.permission.RECEIVE_BOOT_COMPLETED",
    "summary": "开机时自动启动",
    "desc": "允许应用程序在系统完成启动后即自行启动。这样会延长手机的启动时间,而且如果应用程序一直运行,会降低手机的整体速度。",
    "level": "1"
  },
  "106": {
    "name": "android.permission.REORDER_TASKS",
    "summary": "对正在运行的应用程序重新排序",
    "desc": "允许应用程序将任务移至前端和后台。恶意应用程序可借此强行进入前端,而不受您的控制。",
    "level": "1"
  },
  "107": {
    "name": "android.permission.RESTART_PACKAGES",
    "summary": "重启程序",
    "desc": "允许程序自己重启或重启其他程序",
    "level": "0"
  },
  "108": {
    "name": "android.permission.SEND_RESPOND_VIA_MESSAGE",
    "summary": "",
    "desc": "Allows an application (Phone) to send a request to other applications to handle the respond-via-message action during incoming calls.",
    "level": "0"
  },
  "109": {
    "name": "android.permission.SET_ACTIVITY_WATCHER",
    "summary": "监控所有应用程序的启动",
    "desc": "允许应用程序监控系统启动活动的方式。恶意应用程序可借此彻底损坏系统。此权限仅在开发时才需要,普通的手机应用不需要。",
    "level": "1"
  },
  "110": {
    "name": "android.permission.SET_ALWAYS_FINISH",
    "summary": "关闭所有后台应用程序",
    "desc": "允许应用程序控制活动是否始终是一转至后台就完成。普通应用程序从不需要使用此权限。",
    "level": "0"
  },
  "111": {
    "name": "android.permission.SET_ANIMATION_SCALE",
    "summary": "修改全局动画速度",
    "desc": "允许应用程序随时更改全局动画速度(加快或放慢动画)。",
    "level": "0"
  },
  "112": {
    "name": "android.permission.SET_DEBUG_APP",
    "summary": "启用应用程序调试",
    "desc": "允许应用程序启动对其他应用程序的调试。恶意应用程序可借此终止其他应用程序。",
    "level": "1"
  },
  "113": {
    "name": "android.permission.SET_ORIENTATION",
    "summary": "更改屏幕显示方向",
    "desc": "允许应用程序随时更改屏幕的旋转方向。普通应用程序从不需要使用此权限。",
    "level": "0"
  },
  "114": {
    "name": "android.permission.SET_POINTER_SPEED",
    "summary": "",
    "desc": "Allows low-level access to setting the pointer speed.",
    "level": "0"
  },
  "115": {
    "name": "android.permission.SET_PREFERRED_APPLICATIONS",
    "summary": "设置首选应用程序",
    "desc": "允许应用程序修改首选的应用程序。这样恶意应用程序可能会暗中更改运行的应用程序,从而骗过您的现有应用程序来收集您的保密数据。",
    "level": "1"
  },
  "116": {
    "name": "android.permission.SET_PROCESS_LIMIT",
    "summary": "限制运行的进程个数",
    "desc": "允许应用程序控制将运行的进程数上限。普通应用程序从不需要使用此权限。",
    "level": "0"
  },
  "117": {
    "name": "android.permission.SET_TIME",
    "summary": "设置时间",
    "desc": "允许应用程序更改手机的时间。",
    "level": "0"
  },
  "118": {
    "name": "android.permission.SET_TIME_ZONE",
    "summary": "设置时区",
    "desc": "允许应用程序更改手机的时区。",
    "level": "0"
  },
  "119": {
    "name": "android.permission.SET_WALLPAPER",
    "summary": "设置壁纸",
    "desc": "允许应用程序设置系统壁纸。",
    "level": "0"
  },
  "120": {
    "name": "android.permission.SET_WALLPAPER_HINTS",
    "summary": "设置壁纸大小提示",
    "desc": "允许应用程序设置有关壁纸大小的提示。",
    "level": "0"
  },
  "121": {
    "name": "android.permission.SIGNAL_PERSISTENT_PROCESSES",
    "summary": "向应用程序发送 Linux 信号",
    "desc": "允许应用程序请求将所提供的信号发送给所有持久进程。",
    "level": "0"
  },
  "122": {
    "name": "android.permission.STATUS_BAR",
    "summary": "停用或修改状态栏",
    "desc": "允许应用程序停用状态栏或者增删系统图标。",
    "level": "0"
  },
  "123": {
    "name": "android.permission.SUBSCRIBED_FEEDS_READ",
    "summary": "读取订阅的供稿",
    "desc": "允许应用程序获取有关当前同步的供稿的详细信息。",
    "level": "0"
  },
  "124": {
    "name": "android.permission.SUBSCRIBED_FEEDS_WRITE",
    "summary": "写入订阅的供稿",
    "desc": "允许应用程序修改您当前同步的供稿。恶意应用程序可借此更改您同步的供稿。",
    "level": "1"
  },
  "125": {
    "name": "android.permission.SYSTEM_ALERT_WINDOW",
    "summary": "显示系统级警报",
    "desc": "允许应用程序显示系统警报窗口。恶意应用程序可借此掌控整个手机屏幕。",
    "level": "1"
  },
  "126": {
    "name": "android.permission.UPDATE_DEVICE_STATS",
    "summary": "更新设备状态",
    "desc": "允许应用程序更新设备状态。",
    "level": "0"
  },
  "127": {
    "name": "android.permission.USE_CREDENTIALS",
    "summary": "使用帐户的身份验证凭据",
    "desc": "允许应用程序请求身份验证标记。",
    "level": "0"
  },
  "128": {
    "name": "android.permission.USE_SIP",
    "summary": "",
    "desc": "Allows an application to use SIP service",
    "level": "0"
  },
  "129": {
    "name": "android.permission.VIBRATE",
    "summary": "控制振动器",
    "desc": "允许应用程序控制振动器。",
    "level": "0"
  },
  "130": {
    "name": "android.permission.WAKE_LOCK",
    "summary": "防止手机休眠",
    "desc": "允许应用程序防止手机进入休眠状态。",
    "level": "0"
  },
  "131": {
    "name": "android.permission.WRITE_APN_SETTINGS",
    "summary": "写入接入点名称设置",
    "desc": "允许应用程序修改 APN 设置,例如任何 APN 的代理和端口。",
    "level": "0"
  },
  "132": {
    "name": "android.permission.WRITE_GSERVICES",
    "summary": "修改 Google 地图",
    "desc": "允许应用程序修改 Google 服务地图。普通应用程序不能使用此权限。",
    "level": "0"
  },
  "133": {
    "name": "android.permission.WRITE_PROFILE",
    "summary": "",
    "desc": "允许应用程序写 personal profile data.",
    "level": "0"
  },
  "134": {
    "name": "android.permission.WRITE_SOCIAL_STREAM",
    "summary": "",
    "desc": "允许应用程序写 social stream data.",
    "level": "0"
  },
  "135": {
    "name": "android.permission.WRITE_SYNC_SETTINGS",
    "summary": "写入同步设置",
    "desc": "允许应用程序修改同步设置,例如是否为联系人启用同步。",
    "level": "1"
  },
  "136": {
    "name": "android.permission.WRITE_USER_DICTIONARY",
    "summary": "写入用户定义的词典",
    "desc": "允许应用程序向用户词典中写入新词。",
    "level": "1"
  },
  "137": {
    "name": "com.android.alarm.permission.SET_ALARM",
    "summary": "",
    "desc": "允许应用程序广播Intent来设置闹铃。",
    "level": "0"
  },
  "138": {
    "name": "com.android.launcher.permission.INSTALL_SHORTCUT",
    "summary": "",
    "desc": "允许应用程序创建快捷方式。",
    "level": "0"
  },
  "139": {
    "name": "android.permission.SET_PROCESS_FOREGROUND",
    "summary": "",
    "desc": "允许程序当前运行程序强行到前台。",
    "level": "1"
  }
}

================================================
FILE: tools/adb/linux/api/api-versions.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<api version="1">
	<class name="android/Manifest" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
	</class>
	<class name="android/Manifest$permission" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="ACCESS_CHECKIN_PROPERTIES" />
		<field name="ACCESS_COARSE_LOCATION" />
		<field name="ACCESS_FINE_LOCATION" />
		<field name="ACCESS_LOCATION_EXTRA_COMMANDS" />
		<field name="ACCESS_MOCK_LOCATION" />
		<field name="ACCESS_NETWORK_STATE" />
		<field name="ACCESS_SURFACE_FLINGER" />
		<field name="ACCESS_WIFI_STATE" />
		<field name="ACCOUNT_MANAGER" since="5" />
		<field name="ADD_SYSTEM_SERVICE" />
		<field name="ADD_VOICEMAIL" since="14" />
		<field name="AUTHENTICATE_ACCOUNTS" since="5" />
		<field name="BATTERY_STATS" />
		<field name="BIND_ACCESSIBILITY_SERVICE" since="16" />
		<field name="BIND_APPWIDGET" since="3" />
		<field name="BIND_DEVICE_ADMIN" since="8" />
		<field name="BIND_DREAM_SERVICE" since="21" />
		<field name="BIND_INPUT_METHOD" since="3" />
		<field name="BIND_NFC_SERVICE" since="19" />
		<field name="BIND_NOTIFICATION_LISTENER_SERVICE" since="18" />
		<field name="BIND_PRINT_SERVICE" since="19" />
		<field name="BIND_REMOTEVIEWS" since="11" />
		<field name="BIND_TEXT_SERVICE" since="14" />
		<field name="BIND_TV_INPUT" since="21" />
		<field name="BIND_VOICE_INTERACTION" since="21" />
		<field name="BIND_VPN_SERVICE" since="14" />
		<field name="BIND_WALLPAPER" since="8" />
		<field name="BLUETOOTH" />
		<field name="BLUETOOTH_ADMIN" />
		<field name="BLUETOOTH_PRIVILEGED" since="19" />
		<field name="BODY_SENSORS" since="20" />
		<field name="BRICK" />
		<field name="BROADCAST_PACKAGE_REMOVED" />
		<field name="BROADCAST_SMS" since="2" />
		<field name="BROADCAST_STICKY" />
		<field name="BROADCAST_WAP_PUSH" since="2" />
		<field name="CALL_PHONE" />
		<field name="CALL_PRIVILEGED" />
		<field name="CAMERA" />
		<field name="CAPTURE_AUDIO_OUTPUT" since="19" />
		<field name="CAPTURE_SECURE_VIDEO_OUTPUT" since="19" />
		<field name="CAPTURE_VIDEO_OUTPUT" since="19" />
		<field name="CHANGE_COMPONENT_ENABLED_STATE" />
		<field name="CHANGE_CONFIGURATION" />
		<field name="CHANGE_NETWORK_STATE" />
		<field name="CHANGE_WIFI_MULTICAST_STATE" since="4" />
		<field name="CHANGE_WIFI_STATE" />
		<field name="CLEAR_APP_CACHE" />
		<field name="CLEAR_APP_USER_DATA" />
		<field name="CONTROL_LOCATION_UPDATES" />
		<field name="DELETE_CACHE_FILES" />
		<field name="DELETE_PACKAGES" />
		<field name="DEVICE_POWER" />
		<field name="DIAGNOSTIC" />
		<field name="DISABLE_KEYGUARD" />
		<field name="DUMP" />
		<field name="EXPAND_STATUS_BAR" />
		<field name="FACTORY_TEST" />
		<field name="FLASHLIGHT" />
		<field name="FORCE_BACK" />
		<field name="FOTA_UPDATE" />
		<field name="GET_ACCOUNTS" />
		<field name="GET_PACKAGE_SIZE" />
		<field name="GET_TASKS" />
		<field name="GET_TOP_ACTIVITY_INFO" since="18" />
		<field name="GLOBAL_SEARCH" since="4" />
		<field name="HARDWARE_TEST" />
		<field name="INJECT_EVENTS" />
		<field name="INSTALL_LOCATION_PROVIDER" since="4" />
		<field name="INSTALL_PACKAGES" />
		<field name="INSTALL_SHORTCUT" since="19" />
		<field name="INTERNAL_SYSTEM_WINDOW" />
		<field name="INTERNET" />
		<field name="KILL_BACKGROUND_PROCESSES" since="8" />
		<field name="LOCATION_HARDWARE" since="18" />
		<field name="MANAGE_ACCOUNTS" since="5" />
		<field name="MANAGE_APP_TOKENS" />
		<field name="MANAGE_DOCUMENTS" since="19" />
		<field name="MASTER_CLEAR" />
		<field name="MEDIA_CONTENT_CONTROL" since="19" />
		<field name="MODIFY_AUDIO_SETTINGS" />
		<field name="MODIFY_PHONE_STATE" />
		<field name="MOUNT_FORMAT_FILESYSTEMS" since="3" />
		<field name="MOUNT_UNMOUNT_FILESYSTEMS" />
		<field name="NFC" since="9" />
		<field name="PERSISTENT_ACTIVITY" />
		<field name="PROCESS_OUTGOING_CALLS" />
		<field name="READ_CALENDAR" />
		<field name="READ_CALL_LOG" since="16" />
		<field name="READ_CONTACTS" />
		<field name="READ_EXTERNAL_STORAGE" since="16" />
		<field name="READ_FRAME_BUFFER" />
		<field name="READ_HISTORY_BOOKMARKS" since="4" />
		<field name="READ_INPUT_STATE" />
		<field name="READ_LOGS" />
		<field name="READ_OWNER_DATA" />
		<field name="READ_PHONE_STATE" />
		<field name="READ_PROFILE" since="14" />
		<field name="READ_SMS" />
		<field name="READ_SOCIAL_STREAM" since="15" />
		<field name="READ_SYNC_SETTINGS" />
		<field name="READ_SYNC_STATS" />
		<field name="READ_USER_DICTIONARY" since="16" />
		<field name="READ_VOICEMAIL" since="21" />
		<field name="REBOOT" />
		<field name="RECEIVE_BOOT_COMPLETED" />
		<field name="RECEIVE_MMS" />
		<field name="RECEIVE_SMS" />
		<field name="RECEIVE_WAP_PUSH" />
		<field name="RECORD_AUDIO" />
		<field name="REORDER_TASKS" />
		<field name="RESTART_PACKAGES" />
		<field name="SEND_RESPOND_VIA_MESSAGE" since="18" />
		<field name="SEND_SMS" />
		<field name="SET_ACTIVITY_WATCHER" />
		<field name="SET_ALARM" since="9" />
		<field name="SET_ALWAYS_FINISH" />
		<field name="SET_ANIMATION_SCALE" />
		<field name="SET_DEBUG_APP" />
		<field name="SET_ORIENTATION" />
		<field name="SET_POINTER_SPEED" since="13" />
		<field name="SET_PREFERRED_APPLICATIONS" />
		<field name="SET_PROCESS_FOREGROUND" />
		<field name="SET_PROCESS_LIMIT" />
		<field name="SET_TIME" since="8" />
		<field name="SET_TIME_ZONE" />
		<field name="SET_WALLPAPER" />
		<field name="SET_WALLPAPER_HINTS" />
		<field name="SIGNAL_PERSISTENT_PROCESSES" />
		<field name="STATUS_BAR" />
		<field name="SUBSCRIBED_FEEDS_READ" />
		<field name="SUBSCRIBED_FEEDS_WRITE" />
		<field name="SYSTEM_ALERT_WINDOW" />
		<field name="TRANSMIT_IR" since="19" />
		<field name="UNINSTALL_SHORTCUT" since="19" />
		<field name="UPDATE_DEVICE_STATS" since="3" />
		<field name="USE_CREDENTIALS" since="5" />
		<field name="USE_SIP" since="9" />
		<field name="VIBRATE" />
		<field name="WAKE_LOCK" />
		<field name="WRITE_APN_SETTINGS" />
		<field name="WRITE_CALENDAR" />
		<field name="WRITE_CALL_LOG" since="16" />
		<field name="WRITE_CONTACTS" />
		<field name="WRITE_EXTERNAL_STORAGE" since="4" />
		<field name="WRITE_GSERVICES" />
		<field name="WRITE_HISTORY_BOOKMARKS" since="4" />
		<field name="WRITE_OWNER_DATA" />
		<field name="WRITE_PROFILE" since="14" />
		<field name="WRITE_SECURE_SETTINGS" since="3" />
		<field name="WRITE_SETTINGS" />
		<field name="WRITE_SMS" />
		<field name="WRITE_SOCIAL_STREAM" since="15" />
		<field name="WRITE_SYNC_SETTINGS" />
		<field name="WRITE_USER_DICTIONARY" since="16" />
		<field name="WRITE_VOICEMAIL" since="21" />
	</class>
	<class name="android/Manifest$permission_group" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="ACCESSIBILITY_FEATURES" since="18" />
		<field name="ACCOUNTS" />
		<field name="AFFECTS_BATTERY" since="17" />
		<field name="APP_INFO" since="17" />
		<field name="AUDIO_SETTINGS" since="17" />
		<field name="BLUETOOTH_NETWORK" since="17" />
		<field name="BOOKMARKS" since="17" />
		<field name="CALENDAR" since="17" />
		<field name="CAMERA" since="17" />
		<field name="COST_MONEY" />
		<field name="DEVELOPMENT_TOOLS" />
		<field name="DEVICE_ALARMS" since="17" />
		<field name="DISPLAY" since="17" />
		<field name="HARDWARE_CONTROLS" />
		<field name="LOCATION" />
		<field name="MESSAGES" />
		<field name="MICROPHONE" since="17" />
		<field name="NETWORK" />
		<field name="PERSONAL_INFO" />
		<field name="PHONE_CALLS" />
		<field name="SCREENLOCK" since="17" />
		<field name="SOCIAL_INFO" since="17" />
		<field name="STATUS_BAR" since="17" />
		<field name="STORAGE" since="4" />
		<field name="SYNC_SETTINGS" since="17" />
		<field name="SYSTEM_CLOCK" since="17" />
		<field name="SYSTEM_TOOLS" />
		<field name="USER_DICTIONARY" since="17" />
		<field name="VOICEMAIL" since="17" />
		<field name="WALLPAPER" since="17" />
		<field name="WRITE_USER_DICTIONARY" since="17" />
	</class>
	<class name="android/R" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
	</class>
	<class name="android/R$anim" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="accelerate_decelerate_interpolator" />
		<field name="accelerate_interpolator" />
		<field name="anticipate_interpolator" since="4" />
		<field name="anticipate_overshoot_interpolator" since="4" />
		<field name="bounce_interpolator" since="4" />
		<field name="cycle_interpolator" since="8" />
		<field name="decelerate_interpolator" />
		<field name="fade_in" />
		<field name="fade_out" />
		<field name="linear_interpolator" since="4" />
		<field name="overshoot_interpolator" since="4" />
		<field name="slide_in_left" />
		<field name="slide_out_right" />
	</class>
	<class name="android/R$animator" since="11">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="fade_in" />
		<field name="fade_out" />
	</class>
	<class name="android/R$array" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="emailAddressTypes" />
		<field name="imProtocols" />
		<field name="organizationTypes" />
		<field name="phoneTypes" />
		<field name="postalAddressTypes" />
	</class>
	<class name="android/R$attr" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="absListViewStyle" />
		<field name="accessibilityEventTypes" since="14" />
		<field name="accessibilityFeedbackType" since="14" />
		<field name="accessibilityFlags" since="14" />
		<field name="accessibilityLiveRegion" since="19" />
		<field name="accountPreferences" since="5" />
		<field name="accountType" since="5" />
		<field name="action" />
		<field name="actionBarDivider" since="14" />
		<field name="actionBarItemBackground" since="14" />
		<field name="actionBarPopupTheme" since="21" />
		<field name="actionBarSize" since="11" />
		<field name="actionBarSplitStyle" since="14" />
		<field name="actionBarStyle" since="11" />
		<field name="actionBarTabBarStyle" since="11" />
		<field name="actionBarTabStyle" since="11" />
		<field name="actionBarTabTextStyle" since="11" />
		<field name="actionBarTheme" since="21" />
		<field name="actionBarWidgetTheme" since="14" />
		<field name="actionButtonStyle" since="11" />
		<field name="actionDropDownStyle" since="11" />
		<field name="actionLayout" since="11" />
		<field name="actionMenuTextAppearance" since="11" />
		<field name="actionMenuTextColor" since="11" />
		<field name="actionModeBackground" since="11" />
		<field name="actionModeCloseButtonStyle" since="11" />
		<field name="actionModeCloseDrawable" since="11" />
		<field name="actionModeCopyDrawable" since="11" />
		<field name="actionModeCutDrawable" since="11" />
		<field name="actionModeFindDrawable" since="21" />
		<field name="actionModePasteDrawable" since="11" />
		<field name="actionModeSelectAllDrawable" since="14" />
		<field name="actionModeShareDrawable" since="21" />
		<field name="actionModeSplitBackground" since="14" />
		<field name="actionModeStyle" since="14" />
		<field name="actionModeWebSearchDrawable" since="21" />
		<field name="actionOverflowButtonStyle" since="11" />
		<field name="actionOverflowMenuStyle" since="21" />
		<field name="actionProviderClass" since="14" />
		<field name="actionViewClass" since="11" />
		<field name="activatedBackgroundIndicator" since="11" />
		<field name="activityCloseEnterAnimation" />
		<field name="activityCloseExitAnimation" />
		<field name="activityOpenEnterAnimation" />
		<field name="activityOpenExitAnimation" />
		<field name="addPrintersActivity" since="19" />
		<field name="addStatesFromChildren" />
		<field name="adjustViewBounds" />
		<field name="advancedPrintOptionsActivity" since="19" />
		<field name="alertDialogIcon" since="11" />
		<field name="alertDialogStyle" />
		<field name="alertDialogTheme" since="11" />
		<field name="alignmentMode" since="14" />
		<field name="allContactsName" since="11" />
		<field name="allowBackup" since="4" />
		<field name="allowClearUserData" />
		<field name="allowEmbedded" since="20" />
		<field name="allowParallelSyncs" since="11" />
		<field name="allowSingleTap" since="3" />
		<field name="allowTaskReparenting" />
		<field name="alpha" since="11" />
		<field name="alphabeticShortcut" />
		<field name="alwaysDrawnWithCache" />
		<field name="alwaysRetainTaskState" />
		<field name="amPmBackgroundColor" since="21" />
		<field name="amPmTextColor" since="21" />
		<field name="ambientShadowAlpha" since="21" />
		<field name="angle" />
		<field name="animateFirstView" since="11" />
		<field name="animateLayoutChanges" since="11" />
		<field name="animateOnClick" since="3" />
		<field name="animation" />
		<field name="animationCache" />
		<field name="animationDuration" />
		<field name="animationOrder" />
		<field name="animationResolution" since="11" />
		<field name="antialias" />
		<field name="anyDensity" since="4" />
		<field name="apduServiceBanner" since="19" />
		<field name="apiKey" />
		<field name="author" since="7" />
		<field name="authorities" />
		<field name="autoAdvanceViewId" since="11" />
		<field name="autoCompleteTextViewStyle" />
		<field name="autoLink" />
		<field name="autoMirrored" since="19" />
		<field name="autoRemoveFromRecents" since="21" />
		<field name="autoStart" since="7" />
		<field name="autoText" />
		<field name="autoUrlDetect" since="4" />
		<field name="background" />
		<field name="backgroundDimAmount" />
		<field name="backgroundDimEnabled" since="3" />
		<field name="backgroundSplit" since="14" />
		<field name="backgroundStacked" since="14" />
		<field name="backgroundTint" since="21" />
		<field name="backgroundTintMode" since="21" />
		<field name="backupAgent" since="4" />
		<field name="banner" since="21" />
		<field name="baseline" since="11" />
		<field name="baselineAlignBottom" />
		<field name="baselineAligned" />
		<field name="baselineAlignedChildIndex" />
		<field name="borderlessButtonStyle" since="11" />
		<field name="bottom" />
		<field name="bottomBright" />
		<field name="bottomDark" />
		<field name="bottomLeftRadius" />
		<field name="bottomMedium" />
		<field name="bottomOffset" since="3" />
		<field name="bottomRightRadius" />
		<field name="breadCrumbShortTitle" since="11" />
		<field name="breadCrumbTitle" since="11" />
		<field name="bufferType" />
		<field name="button" />
		<field name="buttonBarButtonStyle" since="11" />
		<field name="buttonBarNegativeButtonStyle" since="21" />
		<field name="buttonBarNeutralButtonStyle" since="21" />
		<field name="buttonBarPositiveButtonStyle" since="21" />
		<field name="buttonBarStyle" since="11" />
		<field name="buttonStyle" />
		<field name="buttonStyleInset" />
		<field name="buttonStyleSmall" />
		<field name="buttonStyleToggle" />
		<field name="buttonTint" since="21" />
		<field name="buttonTintMode" since="21" />
		<field name="cacheColorHint" />
		<field name="calendarTextColor" since="21" />
		<field name="calendarViewShown" since="11" />
		<field name="calendarViewStyle" since="11" />
		<field name="canRequestEnhancedWebAccessibility" since="18" />
		<field name="canRequestFilterKeyEvents" since="18" />
		<field name="canRequestTouchExplorationMode" since="18" />
		<field name="canRetrieveWindowContent" since="14" />
		<field name="candidatesTextStyleSpans" since="3" />
		<field name="capitalize" />
		<field name="category" since="19" />
		<field name="centerBright" />
		<field name="centerColor" />
		<field name="centerDark" />
		<field name="centerMedium" />
		<field name="centerX" />
		<field name="centerY" />
		<field name="checkBoxPreferenceStyle" />
		<field name="checkMark" />
		<field name="checkMarkTint" since="21" />
		<field name="checkMarkTintMode" since="21" />
		<field name="checkable" />
		<field name="checkableBehavior" />
		<field name="checkboxStyle" />
		<field name="checked" />
		<field name="checkedButton" />
		<field name="checkedTextViewStyle" since="17" />
		<field name="childDivider" />
		<field name="childIndicator" />
		<field name="childIndicatorEnd" since="18" />
		<field name="childIndicatorLeft" />
		<field name="childIndicatorRight" />
		<field name="childIndicatorStart" since="18" />
		<field name="choiceMode" />
		<field name="clearTaskOnLaunch" />
		<field name="clickable" />
		<field name="clipChildren" />
		<field name="clipOrientation" />
		<field name="clipToPadding" />
		<field name="closeIcon" since="21" />
		<field name="codes" since="3" />
		<field name="collapseColumns" />
		<field name="color" />
		<field name="colorAccent" since="21" />
		<field name="colorActivatedHighlight" since="14" />
		<field name="colorBackground" />
		<field name="colorBackgroundCacheHint" since="5" />
		<field name="colorButtonNormal" since="21" />
		<field name="colorControlActivated" since="21" />
		<field name="colorControlHighlight" since="21" />
		<field name="colorControlNormal" since="21" />
		<field name="colorEdgeEffect" since="21" />
		<field name="colorFocusedHighlight" since="14" />
		<field name="colorForeground" />
		<field name="colorForegroundInverse" />
		<field name="colorLongPressedHighlight" since="14" />
		<field name="colorMultiSelectHighlight" since="14" />
		<field name="colorPressedHighlight" since="14" />
		<field name="colorPrimary" since="21" />
		<field name="colorPrimaryDark" since="21" />
		<field name="columnCount" since="14" />
		<field name="columnDelay" />
		<field name="columnOrderPreserved" since="14" />
		<field name="columnWidth" />
		<field name="commitIcon" since="21" />
		<field name="compatibleWidthLimitDp" since="13" />
		<field name="completionHint" />
		<field name="completionHintView" />
		<field name="completionThreshold" />
		<field name="configChanges" />
		<field name="configure" since="3" />
		<field name="constantSize" />
		<field name="content" since="3" />
		<field name="contentAgeHint" since="21" />
		<field name="contentAuthority" since="5" />
		<field name="contentDescription" since="4" />
		<field name="contentInsetEnd" since="21" />
		<field name="contentInsetLeft" since="21" />
		<field name="contentInsetRight" since="21" />
		<field name="contentInsetStart" since="21" />
		<field name="controlX1" since="21" />
		<field name="controlX2" since="21" />
		<field name="controlY1" since="21" />
		<field name="controlY2" since="21" />
		<field name="country" since="21" />
		<field name="cropToPadding" />
		<field name="cursorVisible" />
		<field name="customNavigationLayout" since="11" />
		<field name="customTokens" since="11" />
		<field name="cycles" />
		<field name="dashGap" />
		<field name="dashWidth" />
		<field name="data" />
		<field name="datePickerDialogTheme" since="21" />
		<field name="datePickerMode" since="21" />
		<field name="datePickerStyle" since="11" />
		<field name="dateTextAppearance" since="11" />
		<field name="dayOfWeekBackground" since="21" />
		<field name="dayOfWeekTextAppearance" since="21" />
		<field name="debuggable" />
		<field name="defaultValue" />
		<field name="delay" />
		<field name="dependency" />
		<field name="descendantFocusability" />
		<field name="description" />
		<field name="detachWallpaper" since="5" />
		<field name="detailColumn" since="5" />
		<field name="detailSocialSummary" since="5" />
		<field name="detailsElementBackground" since="11" />
		<field name="dial" />
		<field name="dialogIcon" />
		<field name="dialogLayout" />
		<field name="dialogMessage" />
		<field name="dialogPreferenceStyle" />
		<field name="dialogTheme" since="11" />
		<field name="dialogTitle" />
		<field name="digits" />
		<field name="direction" />
		<field name="directionDescriptions" since="14" />
		<field name="directionPriority" />
		<field name="disableDependentsState" />
		<field name="disabledAlpha" />
		<field name="displayOptions" since="11" />
		<field name="dither" />
		<field name="divider" />
		<field name="dividerHeight" />
		<field name="dividerHorizontal" since="11" />
		<field name="dividerPadding" since="11" />
		<field name="dividerVertical" since="11" />
		<field name="documentLaunchMode" since="21" />
		<field name="drawSelectorOnTop" />
		<field name="drawable" />
		<field name="drawableBottom" />
		<field name="drawableEnd" since="14" />
		<field name="drawableLeft" />
		<field name="drawablePadding" />
		<field name="drawableRight" />
		<field name="drawableStart" since="14" />
		<field name="drawableTop" />
		<field name="drawingCacheQuality" />
		<field name="dropDownAnchor" since="3" />
		<field name="dropDownHeight" since="4" />
		<field name="dropDownHintAppearance" />
		<field name="dropDownHorizontalOffset" since="5" />
		<field name="dropDownItemStyle" />
		<field name="dropDownListViewStyle" />
		<field name="dropDownSelector" />
		<field name="dropDownSpinnerStyle" since="11" />
		<field name="dropDownVerticalOffset" since="5" />
		<field name="dropDownWidth" since="3" />
		<field name="duplicateParentState" />
		<field name="duration" />
		<field name="editTextBackground" since="11" />
		<field name="editTextColor" since="11" />
		<field name="editTextPreferenceStyle" />
		<field name="editTextStyle" />
		<field name="editable" />
		<field name="editorExtras" since="3" />
		<field name="elegantTextHeight" since="21" />
		<field name="elevation" since="21" />
		<field name="ellipsize" />
		<field name="ems" />
		<field name="enabled" />
		<field name="endColor" />
		<field name="endYear" />
		<field name="enterFadeDuration" since="11" />
		<field name="entries" />
		<field name="entryValues" />
		<field name="eventsInterceptionEnabled" since="4" />
		<field name="excludeClass" since="21" />
		<field name="excludeFromRecents" />
		<field name="excludeId" since="21" />
		<field name="excludeName" since="21" />
		<field name="exitFadeDuration" since="11" />
		<field name="expandableListPreferredChildIndicatorLeft" />
		<field name="expandableListPreferredChildIndicatorRight" />
		<field name="expandableListPreferredChildPaddingLeft" />
		<field name="expandableListPreferredItemIndicatorLeft" />
		<field name="expandableListPreferredItemIndicatorRight" />
		<field name="expandableListPreferredItemPaddingLeft" />
		<field name="expandableListViewStyle" />
		<field name="expandableListViewWhiteStyle" since="8" />
		<field name="exported" />
		<field name="extraTension" since="4" />
		<field name="factor" />
		<field name="fadeDuration" since="4" />
		<field name="fadeEnabled" since="4" />
		<field name="fadeOffset" since="4" />
		<field name="fadeScrollbars" since="5" />
		<field name="fadingEdge" />
		<field name="fadingEdgeLength" />
		<field name="fadingMode" since="19" />
		<field name="fastScrollAlwaysVisible" since="11" />
		<field name="fastScrollEnabled" since="3" />
		<field name="fastScrollOverlayPosition" since="11" />
		<field name="fastScrollPreviewBackgroundLeft" since="11" />
		<field name="fastScrollPreviewBackgroundRight" since="11" />
		<field name="fastScrollStyle" since="21" />
		<field name="fastScrollTextColor" since="11" />
		<field name="fastScrollThumbDrawable" since="11" />
		<field name="fastScrollTrackDrawable" since="11" />
		<field name="fillAfter" />
		<field name="fillAlpha" since="21" />
		<field name="fillBefore" />
		<field name="fillColor" since="21" />
		<field name="fillEnabled" since="3" />
		<field name="fillViewport" />
		<field name="filter" />
		<field name="filterTouchesWhenObscured" since="9" />
		<field name="finishOnCloseSystemDialogs" since="5" />
		<field name="finishOnTaskLaunch" />
		<field name="firstDayOfWeek" since="11" />
		<field name="fitsSystemWindows" />
		<field name="flipInterval" />
		<field name="focusable" />
		<field name="focusableInTouchMode" />
		<field name="focusedMonthDateColor" since="11" />
		<field name="fontFamily" since="16" />
		<field name="fontFeatureSettings" since="21" />
		<field name="footerDividersEnabled" since="3" />
		<field name="foreground" />
		<field name="foregroundGravity" />
		<field name="foregroundTint" since="21" />
		<field name="foregroundTintMode" since="21" />
		<field name="format" />
		<field name="format12Hour" since="17" />
		<field name="format24Hour" since="17" />
		<field name="fragment" since="11" />
		<field name="fragmentAllowEnterTransitionOverlap" since="21" />
		<field name="fragmentAllowReturnTransitionOverlap" since="21" />
		<field name="fragmentCloseEnterAnimation" since="11" />
		<field name="fragmentCloseExitAnimation" since="11" />
		<field name="fragmentEnterTransition" since="21" />
		<field name="fragmentExitTransition" since="21" />
		<field name="fragmentFadeEnterAnimation" since="11" />
		<field name="fragmentFadeExitAnimation" since="11" />
		<field name="fragmentOpenEnterAnimation" since="11" />
		<field name="fragmentOpenExitAnimation" since="11" />
		<field name="fragmentReenterTransition" since="21" />
		<field name="fragmentReturnTransition" since="21" />
		<field name="fragmentSharedElementEnterTransition" since="21" />
		<field name="fragmentSharedElementReturnTransition" since="21" />
		<field name="freezesText" />
		<field name="fromAlpha" />
		<field name="fromDegrees" />
		<field name="fromId" since="21" />
		<field name="fromScene" since="19" />
		<field name="fromXDelta" />
		<field name="fromXScale" />
		<field name="fromYDelta" />
		<field name="fromYScale" />
		<field name="fullBackupOnly" since="21" />
		<field name="fullBright" />
		<field name="fullDark" />
		<field name="functionalTest" />
		<field name="galleryItemBackground" />
		<field name="galleryStyle" />
		<field name="gestureColor" since="4" />
		<field name="gestureStrokeAngleThreshold" since="4" />
		<field name="gestureStrokeLengthThreshold" since="4" />
		<field name="gestureStrokeSquarenessThreshold" since="4" />
		<field name="gestureStrokeType" since="4" />
		<field name="gestureStrokeWidth" since="4" />
		<field name="glEsVersion" since="4" />
		<field name="goIcon" since="21" />
		<field name="gradientRadius" />
		<field name="grantUriPermissions" />
		<field name="gravity" />
		<field name="gridViewStyle" />
		<field name="groupIndicator" />
		<field name="hand_hour" />
		<field name="hand_minute" />
		<field name="handle" since="3" />
		<field name="handleProfiling" />
		<field name="hapticFeedbackEnabled" since="3" />
		<field name="hardwareAccelerated" since="11" />
		<field name="hasCode" />
		<field name="headerAmPmTextAppearance" since="21" />
		<field name="headerBackground" />
		<field name="headerDayOfMonthTextAppearance" since="21" />
		<field name="headerDividersEnabled" since="3" />
		<field name="headerMonthTextAppearance" since="21" />
		<field name="headerTimeTextAppearance" since="21" />
		<field name="headerYearTextAppearance" since="21" />
		<field name="height" />
		<field name="hideOnContentScroll" since="21" />
		<field name="hint" />
		<field name="homeAsUpIndicator" since="11" />
		<field name="homeLayout" since="11" />
		<field name="horizontalDivider" />
		<field name="horizontalGap" since="3" />
		<field name="horizontalScrollViewStyle" since="11" />
		<field name="horizontalSpacing" />
		<field name="host" />
		<field name="icon" />
		<field name="iconPreview" since="3" />
		<field name="iconifiedByDefault" since="11" />
		<field name="id" />
		<field name="ignoreGravity" />
		<field name="imageButtonStyle" />
		<field name="imageWellStyle" />
		<field name="imeActionId" since="3" />
		<field name="imeActionLabel" since="3" />
		<field name="imeExtractEnterAnimation" since="3" />
		<field name="imeExtractExitAnimation" since="3" />
		<field name="imeFullscreenBackground" since="3" />
		<field name="imeOptions" since="3" />
		<field name="imeSubtypeExtraValue" since="11" />
		<field name="imeSubtypeLocale" since="11" />
		<field name="imeSubtypeMode" since="11" />
		<field name="immersive" since="11" />
		<field name="importantForAccessibility" since="16" />
		<field name="inAnimation" />
		<field name="includeFontPadding" />
		<field name="includeInGlobalSearch" since="4" />
		<field name="indeterminate" />
		<field name="indeterminateBehavior" />
		<field name="indeterminateDrawable" />
		<field name="indeterminateDuration" />
		<field name="indeterminateOnly" />
		<field name="indeterminateProgressStyle" since="11" />
		<field name="indeterminateTint" since="21" />
		<field name="indeterminateTintMode" since="21" />
		<field name="indicatorEnd" since="18" />
		<field name="indicatorLeft" />
		<field name="indicatorRight" />
		<field name="indicatorStart" since="18" />
		<field name="inflatedId" />
		<field name="initOrder" />
		<field name="initialKeyguardLayout" since="17" />
		<field name="initialLayout" since="3" />
		<field name="innerRadius" since="3" />
		<field name="innerRadiusRatio" />
		<field name="inputMethod" />
		<field name="inputType" since="3" />
		<field name="inset" since="21" />
		<field name="insetBottom" />
		<field name="insetLeft" />
		<field name="insetRight" />
		<field name="insetTop" />
		<field name="installLocation" since="8" />
		<field name="interpolator" />
		<field name="isAlwaysSyncable" since="11" />
		<field name="isAsciiCapable" since="19" />
		<field name="isAuxiliary" since="14" />
		<field name="isDefault" since="3" />
		<field name="isGame" since="21" />
		<field name="isIndicator" />
		<field name="isModifier" since="3" />
		<field name="isRepeatable" since="3" />
		<field name="isScrollContainer" since="3" />
		<field name="isSticky" since="3" />
		<field name="isolatedProcess" since="16" />
		<field name="itemBackground" />
		<field name="itemIconDisabledAlpha" />
		<field name="itemPadding" since="11" />
		<field name="itemTextAppearance" />
		<field name="keepScreenOn" />
		<field name="key" />
		<field name="keyBackground" since="3" />
		<field name="keyEdgeFlags" since="3" />
		<field name="keyHeight" since="3" />
		<field name="keyIcon" since="3" />
		<field name="keyLabel" since="3" />
		<field name="keyOutputText" since="3" />
		<field name="keyPreviewHeight" since="3" />
		<field name="keyPreviewLayout" since="3" />
		<field name="keyPreviewOffset" since="3" />
		<field name="keySet" since="19" />
		<field name="keyTextColor" since="3" />
		<field name="keyTextSize" since="3" />
		<field name="keyWidth" since="3" />
		<field name="keyboardLayout" since="16" />
		<field name="keyboardMode" since="3" />
		<field name="keycode" />
		<field name="killAfterRestore" since="5" />
		<field name="label" />
		<field name="labelFor" since="17" />
		<field name="labelTextSize" since="3" />
		<field name="largeHeap" since="11" />
		<field name="largeScreens" since="4" />
		<field name="largestWidthLimitDp" since="13" />
		<field name="launchMode" />
		<field name="launchTaskBehindSourceAnimation" since="21" />
		<field name="launchTaskBehindTargetAnimation" since="21" />
		<field name="layerType" since="11" />
		<field name="layout" />
		<field name="layoutAnimation" />
		<field name="layoutDirection" since="17" />
		<field name="layoutMode" since="18" />
		<field name="layout_above" />
		<field name="layout_alignBaseline" />
		<field name="layout_alignBottom" />
		<field name="layout_alignEnd" since="17" />
		<field name="layout_alignLeft" />
		<field name="layout_alignParentBottom" />
		<field name="layout_alignParentEnd" since="17" />
		<field name="layout_alignParentLeft" />
		<field name="layout_alignParentRight" />
		<field name="layout_alignParentStart" since="17" />
		<field name="layout_alignParentTop" />
		<field name="layout_alignRight" />
		<field name="layout_alignStart" since="17" />
		<field name="layout_alignTop" />
		<field name="layout_alignWithParentIfMissing" />
		<field name="layout_below" />
		<field name="layout_centerHorizontal" />
		<field name="layout_centerInParent" />
		<field name="layout_centerVertical" />
		<field name="layout_column" />
		<field name="layout_columnSpan" since="14" />
		<field name="layout_columnWeight" since="21" />
		<field name="layout_gravity" />
		<field name="layout_height" />
		<field name="layout_margin" />
		<field name="layout_marginBottom" />
		<field name="layout_marginEnd" since="17" />
		<field name="layout_marginLeft" />
		<field name="layout_marginRight" />
		<field name="layout_marginStart" since="17" />
		<field name="layout_marginTop" />
		<field name="layout_row" since="14" />
		<field name="layout_rowSpan" since="14" />
		<field name="layout_rowWeight" since="21" />
		<field name="layout_scale" />
		<field name="layout_span" />
		<field name="layout_toEndOf" since="17" />
		<field name="layout_toLeftOf" />
		<field name="layout_toRightOf" />
		<field name="layout_toStartOf" since="17" />
		<field name="layout_weight" />
		<field name="layout_width" />
		<field name="layout_x" />
		<field name="layout_y" />
		<field name="left" />
		<field name="letterSpacing" since="21" />
		<field name="lineSpacingExtra" />
		<field name="lineSpacingMultiplier" />
		<field name="lines" />
		<field name="linksClickable" />
		<field name="listChoiceBackgroundIndicator" since="11" />
		<field name="listChoiceIndicatorMultiple" />
		<field name="listChoiceIndicatorSingle" />
		<field name="listDivider" />
		<field name="listDividerAlertDialog" since="11" />
		<field name="listPopupWindowStyle" since="11" />
		<field name="listPreferredItemHeight" />
		<field name="listPreferredItemHeightLarge" since="14" />
		<field name="listPreferredItemHeightSmall" since="14" />
		<field name="listPreferredItemPaddingEnd" since="17" />
		<field name="listPreferredItemPaddingLeft" since="14" />
		<field name="listPreferredItemPaddingRight" since="14" />
		<field name="listPreferredItemPaddingStart" since="17" />
		<field name="listSelector" />
		<field name="listSeparatorTextViewStyle" />
		<field name="listViewStyle" />
		<field name="listViewWhiteStyle" />
		<field name="logo" since="11" />
		<field name="longClickable" />
		<field name="loopViews" since="11" />
		<field name="manageSpaceActivity" />
		<field name="mapViewStyle" />
		<field name="marqueeRepeatLimit" since="2" />
		<field name="matchOrder" since="21" />
		<field name="max" />
		<field name="maxDate" since="11" />
		<field name="maxEms" />
		<field name="maxHeight" />
		<field name="maxItemsPerRow" />
		<field name="maxLength" />
		<field name="maxLevel" />
		<field name="maxLines" />
		<field name="maxRecents" since="21" />
		<field name="maxRows" />
		<field name="maxSdkVersion" since="4" />
		<field name="maxWidth" />
		<field name="maximumAngle" since="21" />
		<field name="measureAllChildren" />
		<field name="measureWithLargestChild" since="11" />
		<field name="mediaRouteButtonStyle" since="16" />
		<field name="mediaRouteTypes" since="16" />
		<field name="menuCategory" />
		<field name="mimeType" />
		<field name="minDate" since="11" />
		<field name="minEms" />
		<field name="minHeight" />
		<field name="minLevel" />
		<field name="minLines" />
		<field name="minResizeHeight" since="14" />
		<field name="minResizeWidth" since="14" />
		<field name="minSdkVersion" />
		<field name="minWidth" />
		<field name="minimumHorizontalAngle" since="21" />
		<field name="minimumVerticalAngle" since="21" />
		<field name="mipMap" since="18" />
		<field name="mirrorForRtl" since="18" />
		<field name="mode" />
		<field name="moreIcon" />
		<field name="multiArch" since="21" />
		<field name="multiprocess" />
		<field name="name" />
		<field name="navigationBarColor" since="21" />
		<field name="navigationContentDescription" since="21" />
		<field name="navigationIcon" since="21" />
		<field name="navigationMode" since="11" />
		<field name="negativeButtonText" />
		<field name="nestedScrollingEnabled" since="21" />
		<field name="nextFocusDown" />
		<field name="nextFocusForward" since="11" />
		<field name="nextFocusLeft" />
		<field name="nextFocusRight" />
		<field name="nextFocusUp" />
		<field name="noHistory" since="3" />
		<field name="normalScreens" since="4" />
		<field name="notificationTimeout" since="14" />
		<field name="numColumns" />
		<field name="numStars" />
		<field name="numbersBackgroundColor" since="21" />
		<field name="numbersSelectorColor" since="21" />
		<field name="numbersTextColor" since="21" />
		<field name="numeric" />
		<field name="numericShortcut" />
		<field name="onClick" since="4" />
		<field name="oneshot" />
		<field name="opacity" since="11" />
		<field name="order" />
		<field name="orderInCategory" />
		<field name="ordering" since="11" />
		<field name="orderingFromXml" />
		<field name="orientation" />
		<field name="outAnimation" />
		<field name="outlineProvider" since="21" />
		<field name="overScrollFooter" since="9" />
		<field name="overScrollHeader" since="9" />
		<field name="overScrollMode" since="9" />
		<field name="overlapAnchor" since="21" />
		<field name="overridesImplicitlyEnabledSubtype" since="14" />
		<field name="packageNames" since="14" />
		<field name="padding" />
		<field name="paddingBottom" />
		<field name="paddingEnd" since="17" />
		<field name="paddingLeft" />
		<field name="paddingMode" since="21" />
		<field name="paddingRight" />
		<field name="paddingStart" since="17" />
		<field name="paddingTop" />
		<field name="panelBackground" />
		<field name="panelColorBackground" />
		<field name="panelColorForeground" />
		<field name="panelFullBackground" />
		<field name="panelTextAppearance" />
		<field name="parentActivityName" since="16" />
		<field name="password" />
		<field name="path" />
		<field name="pathData" since="21" />
		<field name="pathPattern" />
		<field name="pathPrefix" />
		<field name="patternPathData" since="21" />
		<field name="permission" />
		<field name="permissionFlags" since="17" />
		<field name="permissionGroup" />
		<field name="permissionGroupFlags" since="17" />
		<field name="persistableMode" since="21" />
		<field name="persistent" />
		<field name="persistentDrawingCache" />
		<field name="phoneNumber" />
		<field name="pivotX" />
		<field name="pivotY" />
		<field name="popupAnimationStyle" since="9" />
		<field name="popupBackground" />
		<field name="popupCharacters" since="3" />
		<field name="popupElevation" since="21" />
		<field name="popupKeyboard" since="3" />
		<field name="popupLayout" since="3" />
		<field name="popupMenuStyle" since="11" />
		<field name="popupTheme" since="21" />
		<field name="popupWindowStyle" />
		<field name="port" />
		<field name="positiveButtonText" />
		<field name="preferenceCategoryStyle" />
		<field name="preferenceInformationStyle" />
		<field name="preferenceLayoutChild" />
		<field name="preferenceScreenStyle" />
		<field name="preferenceStyle" />
		<field name="presentationTheme" since="17" />
		<field name="previewImage" since="11" />
		<field name="priority" />
		<field name="privateImeOptions" since="3" />
		<field name="process" />
		<field name="progress" />
		<field name="progressBackgroundTint" since="21" />
		<field name="progressBackgroundTintMode" since="21" />
		<field name="progressBarPadding" since="11" />
		<field name="progressBarStyle" />
		<field name="progressBarStyleHorizontal" />
		<field name="progressBarStyleInverse" since="4" />
		<field name="progressBarStyleLarge" />
		<field name="progressBarStyleLargeInverse" since="4" />
		<field name="progressBarStyleSmall" />
		<field name="progressBarStyleSmallInverse" since="4" />
		<field name="progressBarStyleSmallTitle" />
		<field name="progressDrawable" />
		<field name="progressTint" since="21" />
		<field name="progressTintMode" since="21" />
		<field name="prompt" />
		<field name="propertyName" since="11" />
		<field name="propertyXName" since="21" />
		<field name="propertyYName" since="21" />
		<field name="protectionLevel" />
		<field name="publicKey" since="14" />
		<field name="queryActionMsg" />
		<field name="queryAfterZeroResults" since="4" />
		<field name="queryBackground" since="21" />
		<field name="queryHint" since="11" />
		<field name="quickContactBadgeStyleSmallWindowLarge" since="6" />
		<field name="quickContactBadgeStyleSmallWindowMedium" since="6" />
		<field name="quickContactBadgeStyleSmallWindowSmall" since="6" />
		<field name="quickContactBadgeStyleWindowLarge" since="6" />
		<field name="quickContactBadgeStyleWindowMedium" since="6" />
		<field name="quickContactBadgeStyleWindowSmall" since="6" />
		<field name="radioButtonStyle" />
		<field name="radius" />
		<field name="rating" />
		<field name="ratingBarStyle" />
		<field name="ratingBarStyleIndicator" />
		<field name="ratingBarStyleSmall" />
		<field name="readPermission" />
		<field name="recognitionService" since="21" />
		<field name="relinquishTaskIdentity" since="21" />
		<field name="reparent" since="21" />
		<field name="reparentWithOverlay" since="21" />
		<field name="repeatCount" />
		<field name="repeatMode" />
		<field name="reqFiveWayNav" since="3" />
		<field name="reqHardKeyboard" since="3" />
		<field name="reqKeyboardType" since="3" />
		<field name="reqNavigation" since="3" />
		<field name="reqTouchScreen" since="3" />
		<field name="requireDeviceUnlock" since="19" />
		<field name="required" since="5" />
		<field name="requiredAccountType" since="18" />
		<field name="requiredForAllUsers" since="18" />
		<field name="requiresFadingEdge" since="14" />
		<field name="requiresSmallestWidthDp" since="13" />
		<field name="resizeMode" since="12" />
		<field name="resizeable" since="4" />
		<field name="resource" />
		<field name="restoreAnyVersion" since="8" />
		<field name="restoreNeedsApplication" since="5" />
		<field name="restrictedAccountType" since="18" />
		<field name="restrictionType" since="21" />
		<field name="resumeWhilePausing" since="21" />
		<field name="reversible" since="21" />
		<field name="right" />
		<field name="ringtonePreferenceStyle" />
		<field name="ringtoneType" />
		<field name="rotation" since="11" />
		<field name="rotationX" since="11" />
		<field name="rotationY" since="11" />
		<field name="rowCount" since="14" />
		<field name="rowDelay" />
		<field name="rowEdgeFlags" since="3" />
		<field name="rowHeight" />
		<field name="rowOrderPreserved" since="14" />
		<field name="saveEnabled" />
		<field name="scaleGravity" />
		<field name="scaleHeight" />
		<field name="scaleType" />
		<field name="scaleWidth" />
		<field name="scaleX" since="11" />
		<field name="scaleY" since="11" />
		<field name="scheme" />
		<field name="screenDensity" since="9" />
		<field name="screenOrientation" />
		<field name="screenSize" since="9" />
		<field name="scrollHorizontally" />
		<field name="scrollViewStyle" />
		<field name="scrollX" />
		<field name="scrollY" />
		<field name="scrollbarAlwaysDrawHorizontalTrack" />
		<field name="scrollbarAlwaysDrawVerticalTrack" />
		<field name="scrollbarDefaultDelayBeforeFade" since="5" />
		<field name="scrollbarFadeDuration" since="5" />
		<field name="scrollbarSize" />
		<field name="scrollbarStyle" />
		<field name="scrollbarThumbHorizontal" />
		<field name="scrollbarThumbVertical" />
		<field name="scrollbarTrackHorizontal" />
		<field name="scrollbarTrackVertical" />
		<field name="scrollbars" />
		<field name="scrollingCache" />
		<field name="searchButtonText" />
		<field name="searchIcon" since="21" />
		<field name="searchMode" />
		<field name="searchSettingsDescription" since="4" />
		<field name="searchSuggestAuthority" />
		<field name="searchSuggestIntentAction" />
		<field name="searchSuggestIntentData" />
		<field name="searchSuggestPath" />
		<field name="searchSuggestSelection" />
		<field name="searchSuggestThreshold" since="4" />
		<field name="searchViewStyle" since="21" />
		<field name="secondaryProgress" />
		<field name="secondaryProgressTint" since="21" />
		<field name="secondaryProgressTintMode" since="21" />
		<field name="seekBarStyle" />
		<field name="segmentedButtonStyle" since="11" />
		<field name="selectAllOnFocus" />
		<field name="selectable" />
		<field name="selectableItemBackground" since="11" />
		<field name="selectableItemBackgroundBorderless" since="21" />
		<field name="selectedDateVerticalBar" since="11" />
		<field name="selectedWeekBackgroundColor" since="11" />
		<field name="sessionService" since="21" />
		<field name="settingsActivity" since="3" />
		<field name="setupActivity" since="21" />
		<field name="shadowColor" />
		<field name="shadowDx" />
		<field name="shadowDy" />
		<field name="shadowRadius" />
		<field name="shape" />
		<field name="shareInterpolator" />
		<field name="sharedUserId" />
		<field name="sharedUserLabel" since="3" />
		<field name="shouldDisableView" />
		<field name="showAsAction" since="11" />
		<field name="showDefault" />
		<field name="showDividers" since="11" />
		<field name="showOnLockScreen" since="17" />
		<field name="showSilent" />
		<field name="showText" since="21" />
		<field name="showWeekNumber" since="11" />
		<field name="shownWeekCount" since="11" />
		<field name="shrinkColumns" />
		<field name="singleLine" />
		<field name="singleUser" since="17" />
		<field name="slideEdge" since="21" />
		<field name="smallIcon" since="5" />
		<field name="smallScreens" since="4" />
		<field name="smoothScrollbar" since="3" />
		<field name="soundEffectsEnabled" />
		<field name="spacing" />
		<field name="spinnerDropDownItemStyle" />
		<field name="spinnerItemStyle" />
		<field name="spinnerMode" since="11" />
		<field name="spinnerStyle" />
		<field name="spinnersShown" since="11" />
		<field name="splitMotionEvents" since="11" />
		<field name="splitTrack" since="21" />
		<field name="spotShadowAlpha" since="21" />
		<field name="src" />
		<field name="ssp" since="19" />
		<field name="sspPattern" since="19" />
		<field name="sspPrefix" since="19" />
		<field name="stackFromBottom" />
		<field name="stackViewStyle" since="21" />
		<field name="starStyle" />
		<field name="startColor" />
		<field name="startDelay" since="19" />
		<field name="startOffset" />
		<field name="startYear" />
		<field name="stateListAnimator" since="21" />
		<field name="stateNotNeeded" />
		<field name="state_above_anchor" />
		<field name="state_accelerated" since="11" />
		<field name="state_activated" since="11" />
		<field name="state_active" />
		<field name="state_checkable" />
		<field name="state_checked" />
		<field name="state_drag_can_accept" since="14" />
		<field name="state_drag_hovered" since="14" />
		<field name="state_empty" />
		<field name="state_enabled" />
		<field name="state_expanded" />
		<field name="state_first" />
		<field name="state_focused" />
		<field name="state_hovered" since="14" />
		<field name="state_last" />
		<field name="state_long_pressable" since="3" />
		<field name="state_middle" />
		<field name="state_multiline" since="11" />
		<field name="state_pressed" />
		<field name="state_selected" />
		<field name="state_single" />
		<field name="state_window_focused" />
		<field name="staticWallpaperPreview" since="11" />
		<field name="statusBarColor" since="21" />
		<field name="stepSize" />
		<field name="stopWithTask" since="14" />
		<field name="streamType" />
		<field name="stretchColumns" />
		<field name="stretchMode" />
		<field name="strokeAlpha" since="21" />
		<field name="strokeColor" since="21" />
		<field name="strokeLineCap" since="21" />
		<field name="strokeLineJoin" since="21" />
		<field name="strokeMiterLimit" since="21" />
		<field name="strokeWidth" since="21" />
		<field name="submitBackground" since="21" />
		<field name="subtitle" since="11" />
		<field name="subtitleTextAppearance" since="21" />
		<field name="subtitleTextStyle" since="11" />
		<field name="subtypeExtraValue" since="14" />
		<field name="subtypeId" since="17" />
		<field name="subtypeLocale" since="14" />
		<field name="suggestActionMsg" />
		<field name="suggestActionMsgColumn" />
		<field name="suggestionRowLayout" since="21" />
		<field name="summary" />
		<field name="summaryColumn" since="5" />
		<field name="summaryOff" />
		<field name="summaryOn" />
		<field name="supportsRtl" since="17" />
		<field name="supportsSwitchingToNextInputMethod" since="19" />
		<field name="supportsUploading" since="5" />
		<field name="switchMinWidth" since="14" />
		<field name="switchPadding" since="14" />
		<field name="switchPreferenceStyle" since="14" />
		<field name="switchStyle" since="21" />
		<field name="switchTextAppearance" since="14" />
		<field name="switchTextOff" since="14" />
		<field name="switchTextOn" since="14" />
		<field name="syncable" />
		<field name="tabStripEnabled" since="8" />
		<field name="tabStripLeft" since="8" />
		<field name="tabStripRight" since="8" />
		<field name="tabWidgetStyle" />
		<field name="tag" />
		<field name="targetActivity" />
		<field name="targetClass" />
		<field name="targetDescriptions" since="14" />
		<field name="targetId" since="19" />
		<field name="targetName" since="21" />
		<field name="targetPackage" />
		<field name="targetSdkVersion" since="4" />
		<field name="taskAffinity" />
		<field name="taskCloseEnterAnimation" />
		<field name="taskCloseExitAnimation" />
		<field name="taskOpenEnterAnimation" />
		<field name="taskOpenExitAnimation" />
		<field name="taskToBackEnterAnimation" />
		<field name="taskToBackExitAnimation" />
		<field name="taskToFrontEnterAnimation" />
		<field name="taskToFrontExitAnimation" />
		<field name="tension" since="4" />
		<field name="testOnly" since="4" />
		<field name="text" />
		<field name="textAlignment" since="17" />
		<field name="textAllCaps" since="14" />
		<field name="textAppearance" />
		<field name="textAppearanceButton" />
		<field name="textAppearanceInverse" />
		<field name="textAppearanceLarge" />
		<field name="textAppearanceLargeInverse" />
		<field name="textAppearanceLargePopupMenu" since="11" />
		<field name="textAppearanceListItem" since="14" />
		<field name="textAppearanceListItemSecondary" since="21" />
		<field name="textAppearanceListItemSmall" since="14" />
		<field name="textAppearanceMedium" />
		<field name="textAppearanceMediumInverse" />
		<field name="textAppearanceSearchResultSubtitle" since="5" />
		<field name="textAppearanceSearchResultTitle" since="5" />
		<field name="textAppearanceSmall" />
		<field name="textAppearanceSmallInverse" />
		<field name="textAppearanceSmallPopupMenu" since="11" />
		<field name="textCheckMark" />
		<field name="textCheckMarkInverse" />
		<field name="textColor" />
		<field name="textColorAlertDialogListItem" since="11" />
		<field name="textColorHighlight" />
		<field name="textColorHighlightInverse" since="11" />
		<field name="textColorHint" />
		<field name="textColorHintInverse" />
		<field name="textColorLink" />
		<field name="textColorLinkInverse" since="11" />
		<field name="textColorPrimary" />
		<field name="textColorPrimaryDisableOnly" />
		<field name="textColorPrimaryInverse" />
		<field name="textColorPrimaryInverseDisableOnly" since="4" />
		<field name="textColorPrimaryInverseNoDisable" />
		<field name="textColorPrimaryNoDisable" />
		<field name="textColorSecondary" />
		<field name="textColorSecondaryInverse" />
		<field name="textColorSecondaryInverseNoDisable" />
		<field name="textColorSecondaryNoDisable" />
		<field name="textColorTertiary" />
		<field name="textColorTertiaryInverse" />
		<field name="textCursorDrawable" since="12" />
		<field name="textDirection" since="17" />
		<field name="textEditNoPasteWindowLayout" since="11" />
		<field name="textEditPasteWindowLayout" since="11" />
		<field name="textEditSideNoPasteWindowLayout" since="11" />
		<field name="textEditSidePasteWindowLayout" since="11" />
		<field name="textEditSuggestionItemLayout" since="14" />
		<field name="textFilterEnabled" />
		<field name="textIsSelectable" since="11" />
		<field name="textOff" />
		<field name="textOn" />
		<field name="textScaleX" />
		<field name="textSelectHandle" since="9" />
		<field name="textSelectHandleLeft" since="9" />
		<field name="textSelectHandleRight" since="9" />
		<field name="textSelectHandleWindowStyle" since="9" />
		<field name="textSize" />
		<field name="textStyle" />
		<field name="textSuggestionsWindowStyle" since="14" />
		<field name="textViewStyle" />
		<field name="theme" />
		<field name="thickness" since="3" />
		<field name="thicknessRatio" />
		<field name="thumb" />
		<field name="thumbOffset" />
		<field name="thumbTextPadding" since="14" />
		<field name="thumbTint" since="21" />
		<field name="thumbTintMode" since="21" />
		<field name="thumbnail" since="5" />
		<field name="tileMode" />
		<field name="tileModeX" since="21" />
		<field name="tileModeY" since="21" />
		<field name="timePickerDialogTheme" since="21" />
		<field name="timePickerMode" since="21" />
		<field name="timePickerStyle" since="21" />
		<field name="timeZone" since="17" />
		<field name="tint" />
		<field name="tintMode" since="21" />
		<field name="title" />
		<field name="titleCondensed" />
		<field name="titleTextAppearance" since="21" />
		<field name="titleTextStyle" since="11" />
		<field name="toAlpha" />
		<field name="toDegrees" />
		<field name="toId" since="21" />
		<field name="toScene" since="19" />
		<field name="toXDelta" />
		<field name="toXScale" />
		<field name="toYDelta" />
		<field name="toYScale" />
		<field name="toolbarStyle" since="21" />
		<field name="top" />
		<field name="topBright" />
		<field name="topDark" />
		<field name="topLeftRadius" />
		<field name="topOffset" since="3" />
		<field name="topRightRadius" />
		<field name="touchscreenBlocksFocus" since="21" />
		<field name="track" since="14" />
		<field name="transcriptMode" />
		<field name="transformPivotX" since="11" />
		<field name="transformPivotY" since="11" />
		<field name="transition" since="19" />
		<field name="transitionGroup" since="21" />
		<field name="transitionName" since="21" />
		<field name="transitionOrdering" since="19" />
		<field name="transitionVisibilityMode" since="21" />
		<field name="translateX" since="21" />
		<field name="translateY" since="21" />
		<field name="translationX" since="11" />
		<field name="translationY" since="11" />
		<field name="translationZ" since="21" />
		<field name="trimPathEnd" since="21" />
		<field name="trimPathOffset" since="21" />
		<field name="trimPathStart" since="21" />
		<field name="type" />
		<field name="typeface" />
		<field name="uiOptions" since="14" />
		<field name="uncertainGestureColor" since="4" />
		<field name="unfocusedMonthDateColor" since="11" />
		<field name="unselectedAlpha" />
		<field name="updatePeriodMillis" since="3" />
		<field name="useDefaultMargins" since="14" />
		<field name="useIntrinsicSizeAsMinimum" since="11" />
		<field name="useLevel" />
		<field name="userVisible" since="5" />
		<field name="value" />
		<field name="valueFrom" since="11" />
		<field name="valueTo" since="11" />
		<field name="valueType" since="11" />
		<field name="variablePadding" />
		<field name="vendor" since="19" />
		<field name="versionCode" />
		<field name="versionName" />
		<field name="verticalCorrection" since="3" />
		<field name="verticalDivider" />
		<field name="verticalGap" since="3" />
		<field name="verticalScrollbarPosition" since="11" />
		<field name="verticalSpacing" />
		<field name="viewportHeight" since="21" />
		<field name="viewportWidth" since="21" />
		<field name="visibility" />
		<field name="visible" />
		<field name="vmSafeMode" since="8" />
		<field name="voiceIcon" since="21" />
		<field name="voiceLanguage" since="3" />
		<field name="voiceLanguageModel" since="3" />
		<field name="voiceMaxResults" since="3" />
		<field name="voicePromptText" since="3" />
		<field name="voiceSearchMode" since="3" />
		<field name="wallpaperCloseEnterAnimation" since="5" />
		<field name="wallpaperCloseExitAnimation" since="5" />
		<field name="wallpaperIntraCloseEnterAnimation" since="5" />
		<field name="wallpaperIntraCloseExitAnimation" since="5" />
		<field name="wallpaperIntraOpenEnterAnimation" since="5" />
		<field name="wallpaperIntraOpenExitAnimation" since="5" />
		<field name="wallpaperOpenEnterAnimation" since="5" />
		<field name="wallpaperOpenExitAnimation" since="5" />
		<field name="webTextViewStyle" since="8" />
		<field name="webViewStyle" />
		<field name="weekDayTextAppearance" since="11" />
		<field name="weekNumberColor" since="11" />
		<field name="weekSeparatorLineColor" since="11" />
		<field name="weightSum" />
		<field name="widgetCategory" since="17" />
		<field name="widgetLayout" />
		<field name="width" />
		<field name="windowActionBar" since="11" />
		<field name="windowActionBarOverlay" since="11" />
		<field name="windowActionModeOverlay" since="11" />
		<field name="windowActivityTransitions" since="21" />
		<field name="windowAllowEnterTransitionOverlap" since="21" />
		<field name="windowAllowReturnTransitionOverlap" since="21" />
		<field name="windowAnimationStyle" />
		<field name="windowBackground" />
		<field name="windowClipToOutline" since="21" />
		<field name="windowCloseOnTouchOutside" since="11" />
		<field name="windowContentOverlay" />
		<field name="windowContentTransitionManager" since="21" />
		<field name="windowContentTransitions" since="21" />
		<field name="windowDisablePreview" since="3" />
		<field name="windowDrawsSystemBarBackgrounds" since="21" />
		<field name="windowElevation" since="21" />
		<field name="windowEnableSplitTouch" since="11" />
		<field name="windowEnterAnimation" />
		<field name="windowEnterTransition" since="21" />
		<field name="windowExitAnimation" />
		<field name="windowExitTransition" since="21" />
		<field name="windowFrame" />
		<field name="windowFullscreen" />
		<field name="windowHideAnimation" />
		<field name="windowIsFloating" />
		<field name="windowIsTranslucent" />
		<field name="windowMinWidthMajor" since="11" />
		<field name="windowMinWidthMinor" since="11" />
		<field name="windowNoDisplay" since="3" />
		<field name="windowNoTitle" />
		<field name="windowOverscan" since="18" />
		<field name="windowReenterTransition" since="21" />
		<field name="windowReturnTransition" since="21" />
		<field name="windowSharedElementEnterTransition" since="21" />
		<field name="windowSharedElementExitTransition" since="21" />
		<field name="windowSharedElementReenterTransition" since="21" />
		<field name="windowSharedElementReturnTransition" since="21" />
		<field name="windowSharedElementsUseOverlay" since="21" />
		<field name="windowShowAnimation" />
		<field name="windowShowWallpaper" since="5" />
		<field name="windowSoftInputMode" since="3" />
		<field name="windowSwipeToDismiss" since="20" />
		<field name="windowTitleBackgroundStyle" />
		<field name="windowTitleSize" />
		<field name="windowTitleStyle" />
		<field name="windowTransitionBackgroundFadeDuration" since="21" />
		<field name="windowTranslucentNavigation" since="19" />
		<field name="windowTranslucentStatus" since="19" />
		<field name="writePermission" />
		<field name="x" />
		<field name="xlargeScreens" since="9" />
		<field name="y" />
		<field name="yearListItemTextAppearance" since="21" />
		<field name="yearListSelectorColor" since="21" />
		<field name="yesNoPreferenceStyle" />
		<field name="zAdjustment" />
	</class>
	<class name="android/R$bool" since="3">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
	</class>
	<class name="android/R$color" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="background_dark" />
		<field name="background_light" />
		<field name="black" />
		<field name="darker_gray" />
		<field name="holo_blue_bright" since="14" />
		<field name="holo_blue_dark" since="14" />
		<field name="holo_blue_light" since="14" />
		<field name="holo_green_dark" since="14" />
		<field name="holo_green_light" since="14" />
		<field name="holo_orange_dark" since="14" />
		<field name="holo_orange_light" since="14" />
		<field name="holo_purple" since="14" />
		<field name="holo_red_dark" since="14" />
		<field name="holo_red_light" since="14" />
		<field name="primary_text_dark" />
		<field name="primary_text_dark_nodisable" />
		<field name="primary_text_light" />
		<field name="primary_text_light_nodisable" />
		<field name="secondary_text_dark" />
		<field name="secondary_text_dark_nodisable" />
		<field name="secondary_text_light" />
		<field name="secondary_text_light_nodisable" />
		<field name="tab_indicator_text" />
		<field name="tertiary_text_dark" />
		<field name="tertiary_text_light" />
		<field name="transparent" />
		<field name="white" />
		<field name="widget_edittext_dark" />
	</class>
	<class name="android/R$dimen" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="app_icon_size" />
		<field name="dialog_min_width_major" since="11" />
		<field name="dialog_min_width_minor" since="11" />
		<field name="notification_large_icon_height" since="11" />
		<field name="notification_large_icon_width" since="11" />
		<field name="thumbnail_height" />
		<field name="thumbnail_width" />
	</class>
	<class name="android/R$drawable" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="alert_dark_frame" />
		<field name="alert_light_frame" />
		<field name="arrow_down_float" />
		<field name="arrow_up_float" />
		<field name="bottom_bar" />
		<field name="btn_default" />
		<field name="btn_default_small" />
		<field name="btn_dialog" />
		<field name="btn_dropdown" />
		<field name="btn_minus" />
		<field name="btn_plus" />
		<field name="btn_radio" />
		<field name="btn_star" />
		<field name="btn_star_big_off" />
		<field name="btn_star_big_on" />
		<field name="button_onoff_indicator_off" />
		<field name="button_onoff_indicator_on" />
		<field name="checkbox_off_background" />
		<field name="checkbox_on_background" />
		<field name="dark_header" since="3" />
		<field name="dialog_frame" />
		<field name="dialog_holo_dark_frame" since="11" />
		<field name="dialog_holo_light_frame" since="11" />
		<field name="divider_horizontal_bright" />
		<field name="divider_horizontal_dark" />
		<field name="divider_horizontal_dim_dark" />
		<field name="divider_horizontal_textfield" />
		<field name="edit_text" />
		<field name="editbox_background" />
		<field name="editbox_background_normal" />
		<field name="editbox_dropdown_dark_frame" />
		<field name="editbox_dropdown_light_frame" />
		<field name="gallery_thumb" />
		<field name="ic_btn_speak_now" since="3" />
		<field name="ic_delete" />
		<field name="ic_dialog_alert" />
		<field name="ic_dialog_dialer" />
		<field name="ic_dialog_email" />
		<field name="ic_dialog_info" />
		<field name="ic_dialog_map" />
		<field name="ic_input_add" />
		<field name="ic_input_delete" />
		<field name="ic_input_get" />
		<field name="ic_lock_idle_alarm" />
		<field name="ic_lock_idle_charging" />
		<field name="ic_lock_idle_lock" />
		<field name="ic_lock_idle_low_battery" />
		<field name="ic_lock_lock" />
		<field name="ic_lock_power_off" />
		<field name="ic_lock_silent_mode" />
		<field name="ic_lock_silent_mode_off" />
		<field name="ic_media_ff" />
		<field name="ic_media_next" />
		<field name="ic_media_pause" />
		<field name="ic_media_play" />
		<field name="ic_media_previous" />
		<field name="ic_media_rew" />
		<field name="ic_menu_add" />
		<field name="ic_menu_agenda" />
		<field name="ic_menu_always_landscape_portrait" />
		<field name="ic_menu_call" />
		<field name="ic_menu_camera" />
		<field name="ic_menu_close_clear_cancel" />
		<field name="ic_menu_compass" />
		<field name="ic_menu_crop" />
		<field name="ic_menu_day" />
		<field name="ic_menu_delete" />
		<field name="ic_menu_directions" />
		<field name="ic_menu_edit" />
		<field name="ic_menu_gallery" />
		<field name="ic_menu_help" />
		<field name="ic_menu_info_details" />
		<field name="ic_menu_manage" />
		<field name="ic_menu_mapmode" />
		<field name="ic_menu_month" />
		<field name="ic_menu_more" />
		<field name="ic_menu_my_calendar" />
		<field name="ic_menu_mylocation" />
		<field name="ic_menu_myplaces" />
		<field name="ic_menu_preferences" />
		<field name="ic_menu_recent_history" />
		<field name="ic_menu_report_image" />
		<field name="ic_menu_revert" />
		<field name="ic_menu_rotate" />
		<field name="ic_menu_save" />
		<field name="ic_menu_search" />
		<field name="ic_menu_send" />
		<field name="ic_menu_set_as" />
		<field name="ic_menu_share" />
		<field name="ic_menu_slideshow" />
		<field name="ic_menu_sort_alphabetically" />
		<field name="ic_menu_sort_by_size" />
		<field name="ic_menu_today" />
		<field name="ic_menu_upload" />
		<field name="ic_menu_upload_you_tube" />
		<field name="ic_menu_view" />
		<field name="ic_menu_week" />
		<field name="ic_menu_zoom" />
		<field name="ic_notification_clear_all" />
		<field name="ic_notification_overlay" />
		<field name="ic_partial_secure" />
		<field name="ic_popup_disk_full" />
		<field name="ic_popup_reminder" />
		<field name="ic_popup_sync" />
		<field name="ic_search_category_default" />
		<field name="ic_secure" />
		<field name="list_selector_background" />
		<field name="menu_frame" />
		<field name="menu_full_frame" />
		<field name="menuitem_background" />
		<field name="picture_frame" />
		<field name="presence_audio_away" since="9" />
		<field name="presence_audio_busy" since="9" />
		<field name="presence_audio_online" since="9" />
		<field name="presence_away" />
		<field name="presence_busy" />
		<field name="presence_invisible" />
		<field name="presence_offline" />
		<field name="presence_online" />
		<field name="presence_video_away" since="9" />
		<field name="presence_video_busy" since="9" />
		<field name="presence_video_online" since="9" />
		<field name="progress_horizontal" />
		<field name="progress_indeterminate_horizontal" />
		<field name="radiobutton_off_background" />
		<field name="radiobutton_on_background" />
		<field name="screen_background_dark" />
		<field name="screen_background_dark_transparent" since="5" />
		<field name="screen_background_light" />
		<field name="screen_background_light_transparent" since="5" />
		<field name="spinner_background" />
		<field name="spinner_dropdown_background" />
		<field name="star_big_off" />
		<field name="star_big_on" />
		<field name="star_off" />
		<field name="star_on" />
		<field name="stat_notify_call_mute" />
		<field name="stat_notify_chat" />
		<field name="stat_notify_error" />
		<field name="stat_notify_missed_call" />
		<field name="stat_notify_more" />
		<field name="stat_notify_sdcard" />
		<field name="stat_notify_sdcard_prepare" since="5" />
		<field name="stat_notify_sdcard_usb" />
		<field name="stat_notify_sync" />
		<field name="stat_notify_sync_noanim" />
		<field name="stat_notify_voicemail" />
		<field name="stat_sys_data_bluetooth" />
		<field name="stat_sys_download" />
		<field name="stat_sys_download_done" />
		<field name="stat_sys_headset" />
		<field name="stat_sys_phone_call" />
		<field name="stat_sys_phone_call_forward" />
		<field name="stat_sys_phone_call_on_hold" />
		<field name="stat_sys_speakerphone" />
		<field name="stat_sys_upload" />
		<field name="stat_sys_upload_done" />
		<field name="stat_sys_vp_phone_call" since="4" />
		<field name="stat_sys_vp_phone_call_on_hold" since="4" />
		<field name="stat_sys_warning" />
		<field name="status_bar_item_app_background" />
		<field name="status_bar_item_background" />
		<field name="sym_action_call" />
		<field name="sym_action_chat" />
		<field name="sym_action_email" />
		<field name="sym_call_incoming" />
		<field name="sym_call_missed" />
		<field name="sym_call_outgoing" />
		<field name="sym_contact_card" />
		<field name="sym_def_app_icon" />
		<field name="title_bar" />
		<field name="title_bar_tall" since="3" />
		<field name="toast_frame" />
		<field name="zoom_plate" />
	</class>
	<class name="android/R$fraction" since="11">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
	</class>
	<class name="android/R$id" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="addToDictionary" since="3" />
		<field name="background" />
		<field name="button1" />
		<field name="button2" />
		<field name="button3" />
		<field name="candidatesArea" since="3" />
		<field name="checkbox" />
		<field name="closeButton" since="3" />
		<field name="content" />
		<field name="copy" since="3" />
		<field name="copyUrl" since="3" />
		<field name="custom" since="8" />
		<field name="cut" since="3" />
		<field name="edit" />
		<field name="empty" />
		<field name="extractArea" since="3" />
		<field name="hint" />
		<field name="home" since="11" />
		<field name="icon" />
		<field name="icon1" />
		<field name="icon2" />
		<field name="input" />
		<field name="inputArea" since="3" />
		<field name="inputExtractEditText" since="3" />
		<field name="keyboardView" since="3" />
		<field name="list" />
		<field name="mask" since="21" />
		<field name="message" />
		<field name="navigationBarBackground" since="21" />
		<field name="paste" since="3" />
		<field name="primary" />
		<field name="progress" />
		<field name="secondaryProgress" />
		<field name="selectAll" since="3" />
		<field name="selectTextMode" since="11" />
		<field name="selectedIcon" />
		<field name="startSelectingText" since="3" />
		<field name="statusBarBackground" since="21" />
		<field name="stopSelectingText" since="3" />
		<field name="summary" />
		<field name="switchInputMethod" since="3" />
		<field name="tabcontent" />
		<field name="tabhost" />
		<field name="tabs" />
		<field name="text1" />
		<field name="text2" />
		<field name="title" />
		<field name="toggle" />
		<field name="widget_frame" />
	</class>
	<class name="android/R$integer" since="3">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="config_longAnimTime" />
		<field name="config_mediumAnimTime" />
		<field name="config_shortAnimTime" />
		<field name="status_bar_notification_info_maxnum" since="14" />
	</class>
	<class name="android/R$interpolator" since="11">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="accelerate_cubic" />
		<field name="accelerate_decelerate" />
		<field name="accelerate_quad" />
		<field name="accelerate_quint" />
		<field name="anticipate" />
		<field name="anticipate_overshoot" />
		<field name="bounce" />
		<field name="cycle" />
		<field name="decelerate_cubic" />
		<field name="decelerate_quad" />
		<field name="decelerate_quint" />
		<field name="fast_out_linear_in" since="21" />
		<field name="fast_out_slow_in" since="21" />
		<field name="linear" />
		<field name="linear_out_slow_in" since="21" />
		<field name="overshoot" />
	</class>
	<class name="android/R$layout" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="activity_list_item" />
		<field name="browser_link_context_header" />
		<field name="expandable_list_content" />
		<field name="list_content" since="11" />
		<field name="preference_category" />
		<field name="select_dialog_item" />
		<field name="select_dialog_multichoice" />
		<field name="select_dialog_singlechoice" />
		<field name="simple_dropdown_item_1line" />
		<field name="simple_expandable_list_item_1" />
		<field name="simple_expandable_list_item_2" />
		<field name="simple_gallery_item" />
		<field name="simple_list_item_1" />
		<field name="simple_list_item_2" />
		<field name="simple_list_item_activated_1" since="11" />
		<field name="simple_list_item_activated_2" since="11" />
		<field name="simple_list_item_checked" />
		<field name="simple_list_item_multiple_choice" />
		<field name="simple_list_item_single_choice" />
		<field name="simple_selectable_list_item" since="11" />
		<field name="simple_spinner_dropdown_item" />
		<field name="simple_spinner_item" />
		<field name="test_list_item" />
		<field name="two_line_list_item" />
	</class>
	<class name="android/R$menu" since="11">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
	</class>
	<class name="android/R$mipmap" since="11">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="sym_def_app_icon" />
	</class>
	<class name="android/R$plurals" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
	</class>
	<class name="android/R$raw" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
	</class>
	<class name="android/R$string" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="VideoView_error_button" />
		<field name="VideoView_error_text_invalid_progressive_playback" since="3" />
		<field name="VideoView_error_text_unknown" />
		<field name="VideoView_error_title" />
		<field name="cancel" />
		<field name="copy" />
		<field name="copyUrl" />
		<field name="cut" />
		<field name="defaultMsisdnAlphaTag" />
		<field name="defaultVoiceMailAlphaTag" />
		<field name="dialog_alert_title" since="3" />
		<field name="emptyPhoneNumber" />
		<field name="httpErrorBadUrl" />
		<field name="httpErrorUnsupportedScheme" />
		<field name="no" />
		<field name="ok" />
		<field name="paste" />
		<field name="search_go" />
		<field name="selectAll" />
		<field name="selectTextMode" since="11" />
		<field name="status_bar_notification_info_overflow" since="14" />
		<field name="unknownName" />
		<field name="untitled" />
		<field name="yes" />
	</class>
	<class name="android/R$style" since="1">
		<extends name="java/lang/Object" />
		<method name="&lt;init>()V" />
		<field name="Animation" />
		<field name="Animation_Activity" />
		<field name="Animation_Dialog" />
		<field name="Animation_InputMethod" since="5" />
		<field name="Animation_Toast" />
		<field name="Animation_Translucent" />
		<field name="DeviceDefault_ButtonBar" since="14" />
		<field name="DeviceDefault_ButtonBar_AlertDialog" since="14" />
		<field name="DeviceDefault_Light_ButtonBar" since="14" />
		<field name="DeviceDefault_Light_ButtonBar_AlertDialog" since="14" />
		<field name="DeviceDefault_Light_SegmentedButton" since="14" />
		<field name="DeviceDefault_SegmentedButton" since="14" />
		<field name="Holo_ButtonBar" since="11" />
		<field name="Holo_ButtonBar_AlertDialog" since="11" />
		<field name="Holo_Light_ButtonBar" since="11" />
		<field name="Holo_Light_ButtonBar_AlertDialog" since="11" />
		<field name="Holo_Light_SegmentedButton" since="11" />
		<field name="Holo_SegmentedButton" since="11" />
		<field name="MediaButton" />
		<field name="MediaButton_Ffwd" />
		<field name="MediaButton_Next" />
		<field name="MediaButton_Pause" />
		<field name="MediaButton_Play" />
		<field name="MediaButton_Previous" />
		<field name="MediaButton_Rew" />
		<field name="TextAppearance" />
		<field name="TextAppearance_DeviceDefault" since="14" />
		<field name="TextAppearance_DeviceDefault_DialogWindowTitle" since="14" />
		<field name="TextAppearance_DeviceDefault_Inverse" since="14" />
		<field name="TextAppearance_DeviceDefault_Large" since="14" />
		<field name="TextAppearance_DeviceDefault_Large_Inverse" since="14" />
		<field name="TextAppearance_DeviceDefault_Medium" since="14" />
		<field name="TextAppearance_DeviceDefault_Medium_Inverse" since="14" />
		<field name="TextAppearance_DeviceDefault_SearchResult_Subtitle" since="14" />
		<field name="TextAppearance_DeviceDefault_SearchResult_Title" since="14" />
		<field name="TextAppearance_DeviceDefault_Small" since="14" />
		<field name="TextAppearance_DeviceDefault_Small_Inverse" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Menu" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle_Inverse" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Title" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Title_Inverse" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle_Inverse" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_ActionMode_Title" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_ActionMode_Title_Inverse" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_Button" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_DropDownHint" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_DropDownItem" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_EditText" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_IconMenu_Item" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_PopupMenu" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_PopupMenu_Large" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_PopupMenu_Small" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_TabWidget" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_TextView" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_TextView_PopupMenu" since="14" />
		<field name="TextAppearance_DeviceDefault_Widget_TextView_SpinnerItem" since="14" />
		<field name="TextAppearance_DeviceDefault_WindowTitle" since="14" />
		<field name="TextAppearance_DialogWindowTitle" />
		<field name="TextAppearance_Holo" since="13" />
		<field name="TextAppearance_Holo_DialogWindowTitle" since="13" />
		<field name="TextAppearance_Holo_Inverse" since="13" />
		<field name="TextAppearance_Holo_Large" since="13" />
		<field name="TextAppearance_Holo_Large_Inverse" since="13" />
		<field name="TextAppearance_Holo_Medium" since="13" />
		<field name="TextAppearance_Holo_Medium_Inverse" since="13" />
		<field name="TextAppearance_Holo_SearchResult_Subtitle" since="13" />
		<field name="TextAppearance_Holo_SearchResult_Title" since="13" />
		<field name="TextAppearance_Holo_Small" since="13" />
		<field name="TextAppearance_Holo_Small_Inverse" since="13" />
		<field name="TextAppearance_Holo_Widget" since="13" />
		<field name="TextAppearance_Holo_Widget_ActionBar_Menu" since="14" />
		<field name="TextAppearance_Holo_Widget_ActionBar_Subtitle" since="13" />
		<field name="TextAppearance_Holo_Widget_ActionBar_Subtitle_Inverse" since="14" />
		<field name="TextAppearance_Holo_Widget_ActionBar_Title" since="13" />
		<field name="TextAppearance_Holo_Widget_ActionBar_Title_Inverse" since="14" />
		<field name="TextAppearance_Holo_Widget_ActionMode_Subtitle" since="13" />
		<field name="TextAppearance_Holo_Widget_ActionMode_Subtitle_Inverse" since="14" />
		<field name="TextAppearance_Holo_Widget_ActionMode_Title" since="13" />
		<field name="TextAppearance_Holo_Widget_ActionMode_Title_Inverse" since="14" />
		<field name="TextAppearance_Holo_Widget_Button" since="13" />
		<field name="TextAppearance_Holo_Widget_DropDownHint" since="13" />
		<field name="TextAppearance_Holo_Widget_DropDownItem" since="13" />
		<field name="TextAppearance_Holo_Widget_EditText" since="13" />
		<field name="TextAppearance_Holo_Widget_IconMenu_Item" since="13" />
		<field name="TextAppearance_Holo_Widget_PopupMenu" since="13" />
		<field name="TextAppearance_Holo_Widget_PopupMenu_Large" since="13" />
		<field name="TextAppearance_Holo_Widget_PopupMenu_Small" since="13" />
		<field name="TextAppearance_Holo_Widget_TabWidget" since="13" />
		<field name="TextAppearance_Holo_Widget_TextView" since="13" />
		<field name="TextAppearance_Holo_Widget_TextView_PopupMenu" since="13" />
		<field name="TextAppearance_Holo_Widget_TextView_SpinnerItem" since="13" />
		<field name="TextAppearance_Holo_WindowTitle" since="13" />
		<field name="TextAppearance_Inverse" />
		<field name="TextAppearance_Large" />
		<field name="TextAppearance_Large_Inverse" />
		<field name="TextAppearance_Material" since="21" />
		<field name="TextAppearance_Material_Body1" since="21" />
		<field name="TextAppearance_Material_Body2" since="21" />
		<field name="TextAppearance_Material_Button" since="21" />
		<field name="TextAppearance_Material_Caption" since="21" />
		<field name="TextAppearance_Material_DialogWindowTitle" since="21" />
		<field name="TextAppearance_Material_Display1" since="21" />
		<field name="TextAppearance_Material_Display2" since="21" />
		<field name="TextAppearance_Material_Display3" since="21" />
		<field name="TextAppearance_Material_Display4" since="21" />
		<field name="TextAppearance_Material_Headline" since="21" />
		<field name="TextAppearance_Material_Inverse" since="21" />
		<field name="TextAppearance_Material_Large" since="21" />
		<field name="TextAppearance_Material_Large_Inverse" since="21" />
		<field name="TextAppearance_Material_Medium" since="21" />
		<field name="TextAppearance_Material_Medium_Inverse" since="21" />
		<field name="TextAppearance_Material_Menu" since="21" />
		<field name="TextAppearance_Material_Notification" since="21" />
		<field name="TextAppearance_Material_Notification_Emphasis" since="21" />
		<field name="TextAppearance_Material_Notification_Info" since="21" />
		<field name="TextAppearance_Material_Notification_Line2" since="21" />
		<field name="TextAppearance_Material_Notification_Time" since="21" />
		<field name="TextAppearance_Material_Notification_Title" since="21" />
		<field name="TextAppearance_Material_SearchResult_Subtitle" since="21" />
		<field name="TextAppearance_Material_SearchResult_Title" since="21" />
		<field name="TextAppearance_Material_Small" since="21" />
		<field name="TextAppearance_Material_Small_Inverse" since="21" />
		<field name="TextAppearance_Material_Subhead" since="21" />
		<field name="TextAppearance_Material_Title" since="21" />
		<field name="TextAppearance_Material_Widget" since="21" />
		<field name="TextAppearance_Material_Widget_ActionBar_Menu" since="21" />
		<field name="TextAppearance_Material_Widget_ActionBar_Subtitle" since="21" />
		<field name="TextAppearance_Material_Widget_ActionBar_Subtitle_Inverse" since="21" />
		<field name="TextAppearance_Material_Widget_ActionBar_Title" since="21" />
		<field name="TextAppearance_Material_Widget_ActionBar_Title_Inverse" since="21" />
		<field name="TextAppearance_Material_Widget_ActionMode_Subtitle" since="21" />
		<field name="TextAppearance_Material_Widget_ActionMode_Subtitle_Inverse" since="21" />
		<field name="TextAppearance_Material_Widget_ActionMode_Title" since="21" />
		<field name="TextAppearance_Material_Widget_ActionMode_Title_Inverse" since="21" />
		<field name="TextAppearance_Material_Widget_Button" since="21" />
		<field name="TextAppearance_Material_Widget_DropDownHint" since="21" />
		<field name="TextAppearance_Material_Widget_DropDownItem" since="21" />
		<field name="TextAppearance_Material_Widget_EditText" since="21" />
		<field name="TextAppearance_Material_Widget_IconMenu_Item" since="21" />
		<field name="TextAppearance_Material_Widget_PopupMenu" since="21" />
		<field name="TextAppearance_Material_Widget_PopupMenu_Large" since="21" />
		<field name="TextAppearance_Material_Widget_PopupMenu_Small" since="21" />
		<field name="TextAppearance_Material_Widget_TabWidget" since="21" />
		<field name="TextAppearance_Material_Widget_TextView" since="21" />
		<field name="TextAppearance_Material_Widget_TextView_PopupMenu" since="21" />
		<field name="TextAppearance_Material_Widget_TextView_SpinnerItem" since="21" />
		<field name="TextAppearance_Material_Widget_Toolbar_Subtitle" since="21" />
		<field name="TextAppearance_Material_Widget_Toolbar_Title" since="21" />
		<field name="TextAppearance_Material_WindowTitle" since="21" />
		<field name="TextAppearance_Medium" />
		<field name="TextAppearance_Medium_Inverse" />
		<field name="TextAppearance_Small" />
		<field name="TextAppearance_Small_Inverse" />
		<field name="TextAppearance_StatusBar_EventContent" since="9" />
		<field name="TextAppearance_StatusBar_EventContent_Title" since="9" />
		<field name="TextAppearance_StatusBar_Icon" since="9" />
		<field name="TextAppearance_StatusBar_Title" since="9" />
		<field name="TextAppearance_SuggestionHighlight" since="14" />
		<field name="TextAppearance_Theme" />
		<field name="TextAppearance_Theme_Dialog" />
		<field name="TextAppearance_Widget" />
		<field name="TextAppearance_Widget_Button" />
		<field name="TextAppearance_Widget_DropDownHint" />
		<field name="TextAppearance_Widget_DropDownItem" />
		<field name="TextAppearance_Widget_EditText" />
		<field name="TextAppearance_Widget_IconMenu_Item" />
		<field name="TextAppearance_Widget_PopupMenu_Large" since="11" />
		<field name="TextAppearance_Widget_PopupMenu_Small" since="11" />
		<field name="TextAppearance_Widget_TabWidget" />
		<field name="TextAppearance_Widget_TextView" />
		<field name="TextAppearance_Widget_TextView_PopupMenu" />
		<field name="TextAppearance_Widget_TextView_SpinnerItem" />
		<field name="TextAppearance_WindowTitle" />
		<field name="Theme" />
		<field name="ThemeOverlay" since="21" />
		<field name="ThemeOverlay_Material" since="21" />
		<field name="ThemeOverlay_Material_ActionBar" since="21" />
		<field name="ThemeOverlay_Material_Dark" since="21" />
		<field name="ThemeOverlay_Material_Dark_ActionBar" since="21" />
		<field name="ThemeOverlay_Material_Light" since="21" />
		<field name="Theme_Black" />
		<field name="Theme_Black_NoTitleBar" />
		<field name="Theme_Black_NoTitleBar_Fullscreen" />
		<field name="Theme_DeviceDefault" since="14" />
		<field name="Theme_DeviceDefault_Dialog" since="14" />
		<field name="Theme_DeviceDefault_DialogWhenLarge" since="14" />
		<field name="Theme_DeviceDefault_DialogWhenLarge_NoActionBar" since="14" />
		<field name="Theme_DeviceDefault_Dialog_MinWidth" since="14" />
		<field name="Theme_DeviceDefault_Dialog_NoActionBar" since="14" />
		<field name="Theme_DeviceDefault_Dialog_NoActionBar_MinWidth" since="14" />
		<field name="Theme_DeviceDefault_InputMethod" since="14" />
		<field name="Theme_DeviceDefault_Light" since="14" />
		<field name="Theme_DeviceDefault_Light_DarkActionBar" since="14" />
		<field name="Theme_DeviceDefault_Light_Dialog" since="14" />
		<field name="Theme_DeviceDefault_Light_DialogWhenLarge" since="14" />
		<field name="Theme_DeviceDefault_Light_DialogWhenLarge_NoActionBar" since="14" />
		<field name="Theme_DeviceDefault_Light_Dialog_MinWidth" since="14" />
		<field name="Theme_DeviceDefault_Light_Dialog_NoActionBar" since="14" />
		<field name="Theme_DeviceDefault_Light_Dialog_NoActionBar_MinWidth" since="14" />
		<field name="Theme_DeviceDefault_Light_NoActionBar" since="14" />
		<field name="Theme_DeviceDefault_Light_NoActionBar_Fullscreen" since="14" />
		<field name="Theme_DeviceDefault_Light_NoActionBar_Overscan" since="18" />
		<field name="Theme_DeviceDefault_Light_NoActionBar_TranslucentDecor" since="19" />
		<field name="Theme_DeviceDefault_Light_Panel" since="14" />
		<field name="Theme_DeviceDefault_NoActionBar" since="14" />
		<field name="Theme_DeviceDefault_NoActionBar_Fullscreen" since="14" />
		<field name="Theme_DeviceDefault_NoActionBar_Overscan" since="18" />
		<field name="Theme_DeviceDefault_NoActionBar_TranslucentDecor" since="19" />
		<field name="Theme_DeviceDefault_Panel" since="14" />
		<field name="Theme_DeviceDefault_Settings" since="21" />
		<field name="Theme_DeviceDefault_Wallpaper" since="14" />
		<field name="Theme_DeviceDefault_Wallpaper_NoTitleBar" since="14" />
		<field name="Theme_Dialog" />
		<field name="Theme_Holo" since="11" />
		<field name="Theme_Holo_Dialog" since="11" />
		<field name="Theme_Holo_DialogWhenLarge" since="11" />
		<field name="Theme_Holo_DialogWhenLarge_NoActionBar" since="11" />
		<field name="Theme_Holo_Dialog_MinWidth" since="11" />
		<field name="Theme_Holo_Dialog_NoActionBar" since="11" />
		<field name="Theme_Holo_Dialog_NoActionBar_MinWidth" since="11" />
		<field name="Theme_Holo_InputMethod" since="11" />
		<field name="Theme_Holo_Light" since="11" />
		<field name="Theme_Holo_Light_DarkActionBar" since="14" />
		<field name="Theme_Holo_Light_Dialog" since="11" />
		<field name="Theme_Holo_Light_DialogWhenLarge" since="11" />
		<field name="Theme_Holo_Light_DialogWhenLarge_NoActionBar" since="11" />
		<field name="Theme_Holo_Light_Dialog_MinWidth" since="11" />
		<field name="Theme_Holo_Light_Dialog_NoActionBar" since="11" />
		<field name="Theme_Holo_Light_Dialog_NoActionBar_MinWidth" since="11" />
		<field name="Theme_Holo_Light_NoActionBar" since="13" />
		<field name="Theme_Holo_Light_NoActionBar_Fullscreen" since="13" />
		<field name="Theme_Holo_Light_NoActionBar_Overscan" since="18" />
		<field name="Theme_Holo_Light_NoActionBar_TranslucentDecor" since="19" />
		<field name="Theme_Holo_Light_Panel" since="11" />
		<field name="Theme_Holo_NoActionBar" since="11" />
		<field name="Theme_Holo_NoActionBar_Fullscreen" since="11" />
		<field name="Theme_Holo_NoActionBar_Overscan" since="18" />
		<field name="Theme_Holo_NoActionBar_TranslucentDecor" since="19" />
		<field name="Theme_Holo_Panel" since="11" />
		<field name="Theme_Holo_Wallpaper" since="11" />
		<field name="Theme_Holo_Wallpaper_NoTitleBar" since="11" />
		<field name="Theme_InputMethod" since="3" />
		<field name="Theme_Light" />
		<field name="Theme_Light_NoTitleBar" />
		<field name="Theme_Light_NoTitleBar_Fullscreen" />
		<field name="Theme_Light_Panel" since="3" />
		<field name="Theme_Light_WallpaperSettings" since="5" />
		<field name="Theme_Material" since="21" />
		<field name="Theme_Material_Dialog" since="21" />
		<field name="Theme_Material_DialogWhenLarge" since="21" />
		<field name="Theme_Material_DialogWhenLarge_NoActionBar" since="21" />
		<field name="Theme_Material_Dialog_Alert" since="21" />
		<field name="Theme_Material_Dialog_MinWidth" since="21" />
		<field name="Theme_Material_Dialog_NoActionBar" since="21" />
		<field name="Theme_Material_Dialog_NoActionBar_MinWidth" since="21" />
		<field name="Theme_Material_Dialog_Presentation" since="21" />
		<field name="Theme_Material_InputMethod" since="21" />
		<field name="Theme_Material_Light" since="21" />
		<field name="Theme_Material_Light_DarkActionBar" since="21" />
		<field name="Theme_Material_Light_Dialog" since="21" />
		<field name="Theme_Material_Light_DialogWhenLarge" since="21" />
		<field name="Theme_Material_Light_DialogWhenLarge_NoActionBar" since="21" />
		<field name="Theme_Material_Light_Dialog_Alert" since="21" />
		<field name="Theme_Material_Light_Dialog_MinWidth" since="21" />
		<field name="Theme_Material_Light_Dialog_NoActionBar" since="21" />
		<field name="Theme_Material_Light_Dialog_NoActionBar_MinWidth" since="21" />
		<field name="Theme_Material_Light_Dialog_Presentation" since="21" />
		<field name="Theme_Material_Light_NoActionBar" since="21" />
		<field name="Theme_Material_Light_NoActionBar_Fullscreen" since="21" />
		<field name="Theme_Material_Light_NoActionBar_Overscan" since="21" />
		<field name="Theme_Material_Light_NoActionBar_TranslucentDecor" since="21" />
		<field name="Theme_Material_Light_Panel" since="21" />
		<field name="Theme_Material_Light_Voice" since="21" />
		<field name="Theme_Material_NoActionBar" since="21" />
		<field name="Theme_Material_NoActionBar_Fullscreen" since="21" />
		<field name="Theme_Material_NoActionBar_Overscan" since="21" />
		<field name="Theme_Material_NoActionBar_TranslucentDecor" since="21" />
		<field name="Theme_Material_Panel" since="21" />
		<field name="Theme_Material_Settings" since="21" />
		<field name="Theme_Material_Voice" since="21" />
		<field name="Theme_Material_Wallpaper" since="21" />
		<field name="Theme_Material_Wallpaper_NoTitleBar" since="21" />
		<field name="Theme_NoDisplay" since="3" />
		<field name="Theme_NoTitleBar" />
		<field name="Theme_NoTitleBar_Fullscreen" />
		<field name="Theme_NoTitleBar_OverlayActionModes" since="11" />
		<field name="Theme_Panel" since="3" />
		<field name="Theme_Translucent" />
		<field name="Theme_Translucent_NoTitleBar" />
		<field name="Theme_Translucent_NoTitleBar_Fullscreen" />
		<field name="Theme_Wallpaper" since="5" />
		<field name="Theme_WallpaperSettings" since="5" />
		<field name="Theme_Wallpaper_NoTitleBar" since="5" />
		<field name="Theme_Wallpaper_NoTitleBar_Fullscreen" since="5" />
		<field name="Theme_WithActionBar" since="11" />
		<field name="Widget" />
		<field name="Widget_AbsListView" />
		<field name="Widget_ActionBar" since="11" />
		<field name="Widget_ActionBar_TabBar" since="13" />
		<field name="Widget_ActionBar_TabText" since="13" />
		<field name="Widget_ActionBar_TabView" since="13" />
		<field name="Widget_ActionButton" since="11" />
		<field name="Widget_ActionButton_CloseMode" since="11" />
		<field name="Widget_ActionButton_Overflow" since="11" />
		<field name="Widget_AutoCompleteTextView" />
		<field name="Widget_Button" />
		<field name="Widget_Button_Inset" />
		<field name="Widget_Button_Small" />
		<field name="Widget_Button_Toggle" />
		<field name="Widget_CalendarView" since="11" />
		<field name="Widget_CompoundButton" />
		<field name="Widget_CompoundButton_CheckBox" />
		<field name="Widget_CompoundButton_RadioButton" />
		<field name="Widget_CompoundButton_Star" />
		<field name="Widget_DatePicker" since="11" />
		<field name="Widget_DeviceDefault" since="14" />
		<field name="Widget_DeviceDefault_ActionBar" since="14" />
		<field name="Widget_DeviceDefault_ActionBar_Solid" since="14" />
		<field name="Widget_DeviceDefault_ActionBar_TabBar" since="14" />
		<field name="Widget_DeviceDefault_ActionBar_TabText" since="14" />
		<field name="Widget_DeviceDefault_ActionBar_TabView" since="14" />
		<field name="Widget_DeviceDefault_ActionButton" since="14" />
		<field name="Widget_DeviceDefault_ActionButton_CloseMode" since="14" />
		<field name="Widget_DeviceDefault_ActionButton_Overflow" since="14" />
		<field name="Widget_DeviceDefault_ActionButton_TextButton" since="14" />
		<field name="Widget_DeviceDefault_ActionMode" since="14" />
		<field name="Widget_DeviceDefault_AutoCompleteTextView" since="14" />
		<field name="Widget_DeviceDefault_Button" since="14" />
		<field name="Widget_DeviceDefault_Button_Borderless" since="14" />
		<field name="Widget_DeviceDefault_Button_Borderless_Small" since="14" />
		<field name="Widget_DeviceDefault_Button_Inset" since="14" />
		<field name="Widget_DeviceDefault_Button_Small" since="14" />
		<field name="Widget_DeviceDefault_Button_Toggle" since="14" />
		<field name="Widget_DeviceDefault_CalendarView" since="14" />
		<field name="Widget_DeviceDefault_CheckedTextView" since="17" />
		<field name="Widget_DeviceDefault_CompoundButton_CheckBox" since="14" />
		<field name="Widget_DeviceDefault_CompoundButton_RadioButton" since="14" />
		<field name="Widget_DeviceDefault_CompoundButton_Star" since="14" 
Download .txt
gitextract_wrb45nhy/

├── .gitattributes
├── LICENSE
├── README.md
├── coeus.py
├── config.py
├── report.xml
├── result/
│   └── 20191224-11-28-55/
│       ├── info.log
│       └── report.xml
├── scanner/
│   ├── __init__.py
│   ├── base.py
│   ├── dynamic.py
│   ├── dynamicscanner/
│   │   └── __init__.py
│   ├── fuzz/
│   │   └── __init__.py
│   ├── static.py
│   └── staticscanner/
│       ├── __init__.py
│       ├── api.py
│       ├── info.py
│       └── policy.py
├── script/
│   ├── __init__.py
│   ├── exploit_api.json
│   ├── hiddenapi-flags.csv
│   ├── policy_api.json
│   └── policy_permission.json
├── test/
│   ├── bugly_crash_release.jar
│   ├── getui_2.13.3.0-gisdk_3.1.9.1-gssdk_2.3.0.0.aar
│   ├── gisdk-2.13.3.0.aar
│   ├── gisdk-2.9.3.0.aar
│   └── glide-4.10.0.aar
├── tools/
│   ├── aapt
│   ├── adb/
│   │   ├── linux/
│   │   │   ├── adb
│   │   │   ├── api/
│   │   │   │   └── api-versions.xml
│   │   │   ├── dmtracedump
│   │   │   ├── etc1tool
│   │   │   ├── fastboot
│   │   │   ├── hprof-conv
│   │   │   ├── source.properties
│   │   │   ├── sqlite3
│   │   │   └── systrace/
│   │   │       ├── AUTHORS
│   │   │       ├── LICENSE
│   │   │       ├── NOTICE
│   │   │       ├── UPSTREAM_REVISION
│   │   │       ├── prefix.html
│   │   │       ├── script.js
│   │   │       ├── style.css
│   │   │       ├── suffix.html
│   │   │       ├── systrace-legacy.py
│   │   │       └── systrace.py
│   │   ├── mac/
│   │   │   ├── adb
│   │   │   ├── api/
│   │   │   │   └── api-versions.xml
│   │   │   ├── dmtracedump
│   │   │   ├── etc1tool
│   │   │   ├── fastboot
│   │   │   ├── hprof-conv
│   │   │   ├── source.properties
│   │   │   ├── sqlite3
│   │   │   └── systrace/
│   │   │       ├── AUTHORS
│   │   │       ├── LICENSE
│   │   │       ├── NOTICE
│   │   │       ├── UPSTREAM_REVISION
│   │   │       ├── prefix.html
│   │   │       ├── script.js
│   │   │       ├── style.css
│   │   │       ├── suffix.html
│   │   │       ├── systrace-legacy.py
│   │   │       └── systrace.py
│   │   └── windows/
│   │       ├── api/
│   │       │   └── api-versions.xml
│   │       ├── source.properties
│   │       └── systrace/
│   │           ├── AUTHORS
│   │           ├── LICENSE
│   │           ├── NOTICE
│   │           ├── UPSTREAM_REVISION
│   │           ├── prefix.html
│   │           ├── script.js
│   │           ├── style.css
│   │           ├── suffix.html
│   │           ├── systrace-legacy.py
│   │           └── systrace.py
│   ├── apktool.jar
│   ├── baksmali.jar
│   ├── cfr_0_96.jar
│   ├── dx.jar
│   ├── jad
│   └── jad_mac
├── update-info.txt
└── utils/
    ├── __init__.py
    ├── fileutils.py
    ├── manager.py
    ├── md5.py
    ├── sdkinfo.py
    ├── tool.py
    └── ziputils.py
Download .txt
SYMBOL INDEX (1091 symbols across 22 files)

FILE: config.py
  class Config (line 7) | class Config:
    method __init__ (line 16) | def __init__(self):

FILE: scanner/base.py
  class BaseScanner (line 7) | class BaseScanner:
    method __init__ (line 8) | def __init__(self):
    method init_tag (line 12) | def init_tag(self):
    method scan (line 16) | def scan(self):
    method report (line 20) | def report(self):
    method delete (line 24) | def delete(self):
    method end_tag (line 27) | def end_tag(self):
    method start (line 31) | def start(self):

FILE: scanner/dynamic.py
  class DynamicScanner (line 9) | class DynamicScanner(BaseScanner):
    method __init__ (line 10) | def __init__(self):
    method start (line 14) | def start(self):
    method init (line 18) | def init(self):
    method scan (line 22) | def scan(self):
    method report (line 26) | def report(self):
    method delete (line 30) | def delete(self):
    method __del__ (line 33) | def __del__(self):

FILE: scanner/static.py
  class StaticScanner (line 11) | class StaticScanner(BaseScanner):
    method __init__ (line 12) | def __init__(self, is_aar):
    method init (line 20) | def init(self):
    method scan (line 24) | def scan(self):
    method report (line 28) | def report(self):
    method delete (line 32) | def delete(self):
    method __del__ (line 35) | def __del__(self):
    method start (line 39) | def start(self):

FILE: scanner/staticscanner/api.py
  class ApiScanner (line 25) | class ApiScanner(BaseScanner):
    method __init__ (line 26) | def __init__(self):
    method init (line 36) | def init(self):
    method scan (line 44) | def scan(self):
    method gethttp (line 58) | def gethttp(self, file_path):
    method getmsg (line 73) | def getmsg(self, line):
    method _in_file_ (line 78) | def _in_file_(self, line, class_name):
    method report (line 127) | def report(self):
    method delete (line 179) | def delete(self):
    method __del__ (line 185) | def __del__(self):

FILE: scanner/staticscanner/info.py
  class InfoScanner (line 15) | class InfoScanner(BaseScanner):
    method __init__ (line 16) | def __init__(self):
    method init (line 20) | def init(self):
    method scan (line 24) | def scan(self):
    method get_info (line 30) | def get_info(self):
    method get_soname (line 62) | def get_soname(self):
    method get_other_libs (line 70) | def get_other_libs(self):
    method get_assets (line 77) | def get_assets(self):
    method report (line 84) | def report(self):
    method delete (line 101) | def delete(self):
    method __del__ (line 104) | def __del__(self):

FILE: scanner/staticscanner/policy.py
  class PolicyScanner (line 17) | class PolicyScanner(BaseScanner):
    method __init__ (line 18) | def __init__(self):
    method init (line 26) | def init(self):
    method scan (line 33) | def scan(self):
    method so_policy (line 49) | def so_policy(self):
    method find_permission_policy (line 61) | def find_permission_policy(self):
    method find_api_policy (line 86) | def find_api_policy(self):
    method get_msg (line 89) | def get_msg(self, line):
    method report (line 94) | def report(self):
    method delete (line 127) | def delete(self):
    method __del__ (line 130) | def __del__(self):

FILE: tools/adb/linux/systrace/script.js
  function d (line 122) | function d(a) {
  function b (line 127) | function b(a, c) {
  function a (line 133) | function a(a, c) {
  function c (line 139) | function c(a, c) {
  function e (line 145) | function e() {
  function f (line 184) | function f() {
  function g (line 195) | function g(a, c) {
  function h (line 218) | function h(a) {
  function k (line 227) | function k(a) {
  method moduleBasePath (line 242) | set moduleBasePath(a) {
  method moduleBasePath (line 244) | get moduleBasePath() {
  function d (line 290) | function d(a) {
  function d (line 361) | function d(a) {
  function d (line 390) | function d(a, c) {
  function b (line 396) | function b(a, c) {
  method value (line 405) | get value() {
  method timestamp (line 407) | set timestamp(a) {
  method length (line 424) | get length() {
  method name (line 426) | get name() {
  method color (line 428) | get color() {
  method samples (line 430) | get samples() {
  method timestamps (line 432) | get timestamps() {
  function d (line 461) | function d(c) {
  function b (line 469) | function b(a) {
  function d (line 554) | function d(a) {
  function d (line 593) | function d(a) {
  function d (line 621) | function d(c) {
  function b (line 634) | function b(a) {
  function d (line 676) | function d(a) {
  function d (line 829) | function d(a) {
  function d (line 857) | function d(a) {
  function d (line 910) | function d(a) {
  function d (line 967) | function d(a) {
  function d (line 1123) | function d(a) {
  function d (line 1179) | function d(a) {
  function d (line 1218) | function d(a) {
  function d (line 1552) | function d(a) {
  function d (line 1621) | function d(a) {
  function d (line 1687) | function d(a) {
  function d (line 1724) | function d(a) {
  function d (line 1764) | function d(a) {
  function d (line 1799) | function d() {
  function d (line 1855) | function d(b, a, c) {
  function d (line 1872) | function d() {
  method isEmpty (line 1881) | get isEmpty() {
  method min (line 1887) | get min() {
  method max (line 1889) | get max() {
  method range (line 1892) | get range() {
  method center (line 1894) | get center() {
  function d (line 1905) | function d() {
  function b (line 1908) | function b(a) {
  function a (line 1912) | function a(a) {
  function d (line 1966) | function d(b, a, c, e) {
  method guid (line 1977) | get guid() {
  method timestamps (line 1985) | set timestamps(b) {
  method seriesNames (line 1987) | set seriesNames(b) {
  method seriesColors (line 1989) | set seriesColors(b) {
  method samples (line 1991) | set samples(b) {
  method series (line 1997) | get series() {
  method numSeries (line 1999) | get numSeries() {
  method numSamples (line 2001) | get numSamples() {
  method timestamps (line 2003) | get timestamps() {
  function d (line 2044) | function d(b, a, c, e, f) {
  method end (line 2054) | get end() {
  function d (line 2063) | function d(b, a, c, e, f, g) {
  method end (line 2069) | get end() {
  function d (line 2080) | function d(a) {
  function d (line 2113) | function d(a, c, b) {
  function b (line 2119) | function b(a, c, b, f, g, h) {
  function d (line 2142) | function d(b, a) {
  function d (line 2216) | function d(b, a, c) {
  function d (line 2247) | function d(b, a, c, e, f) {
  method typeName (line 2263) | get typeName() {
  function d (line 2332) | function d(b, a, c) {
  method lastInstance (line 2372) | get lastInstance() {
  function d (line 2401) | function d(b) {
  function d (line 2499) | function d(b, a, c, e, f) {
  function d (line 2518) | function d() {
  method length (line 2526) | get length() {
  function d (line 2554) | function d(b, a, c, e, f) {
  function d (line 2567) | function d(a) {
  method length (line 2576) | get length() {
  method openSliceCount (line 2594) | get openSliceCount() {
  method mostRecentlyOpenedPartialSlice (line 2596) | get mostRecentlyOpenedPartialSlice() {
  function d (line 2671) | function d(c, b, e, d, l, m) {
  function b (line 2676) | function b(a, b) {
  method guid (line 2694) | get guid() {
  method samples (line 2711) | get samples() {
  method isEmpty (line 2719) | get isEmpty() {
  method userFriendlyName (line 2749) | get userFriendlyName() {
  method userFriendlyDetails (line 2751) | get userFriendlyDetails() {
  function d (line 2771) | function d() {
  function d (line 2825) | function d(a) {
  function d (line 2881) | function d(a) {
  method guid (line 2898) | get guid() {
  method numThreads (line 2900) | get numThreads() {
  function d (line 2967) | function d(c) {
  method userFriendlyName (line 2980) | get userFriendlyName() {
  method userFriendlyDetails (line 2982) | get userFriendlyDetails() {
  function d (line 3009) | function d(b, a) {
  method userFriendlyName (line 3033) | get userFriendlyName() {
  method userFriendlyDetails (line 3038) | get userFriendlyDetails() {
  function d (line 3057) | function d(a, b) {
  function b (line 3068) | function b(a) {
  method numProcesses (line 3078) | get numProcesses() {
  function d (line 3204) | function d(a) {
  function b (line 3208) | function b(a, c) {
  function a (line 3224) | function a(a) {
  function b (line 3299) | function b(a) {
  function e (line 3304) | function e(a, c) {
  method model (line 3331) | get model() {
  function d (line 3553) | function d(a, c, b, e) {
  function b (line 3561) | function b() {
  function a (line 3568) | function a(a, c, b) {
  function c (line 3572) | function c(c, b, e, f) {
  function d (line 3692) | function d(a, c, b, e, d) {
  function b (line 3697) | function b(a, c, b, k, l) {
  function a (line 3702) | function a(a, c, b, k, l) {
  function c (line 3707) | function c(a, c, b, k, l) {
  function d (line 3726) | function d(a) {
  function b (line 3743) | function b(a, c) {
  function a (line 3892) | function a(a) {
  function c (line 3946) | function c(c, b, e, d) {
  function b (line 3967) | function b(a, c, d, k) {
  function d (line 4005) | function d(g, h, m) {
  function h (line 4013) | function h(a) {
  function d (line 4031) | function d() {
  function d (line 4140) | function d() {
  function d (line 4243) | function d() {
  function b (line 4246) | function b(a) {
  function d (line 4317) | function d(a, b) {
  function d (line 4452) | function d(a, c) {
  function b (line 4457) | function b(a, c, b) {
  function a (line 4463) | function a(a, c) {
  function c (line 4468) | function c(a, c) {
  function e (line 4473) | function e(a) {
  method modelObject (line 4482) | get modelObject() {
  method selected (line 4484) | get selected() {
  method selected (line 4486) | set selected(a) {
  method modelObject (line 4495) | get modelObject() {
  method selected (line 4497) | get selected() {
  method selected (line 4499) | set selected(a) {
  method modelObject (line 4506) | get modelObject() {
  method selected (line 4508) | get selected() {
  method selected (line 4511) | set selected(a) {
  method modelObject (line 4518) | get modelObject() {
  method selected (line 4520) | get selected() {
  method selected (line 4522) | set selected(a) {
  method bounds (line 4537) | get bounds() {
  method duration (line 4544) | get duration() {
  method length (line 4546) | get length() {
  method guid (line 4548) | get guid() {
  function a (line 4660) | function a() {
  method objectSnapshot (line 4716) | set objectSnapshot(a) {
  method objectInstance (line 4727) | set objectInstance(a) {
  method object (line 4747) | get object() {
  method object (line 4749) | set object(b) {
  function d (line 4912) | function d(b, a) {
  function d (line 4976) | function d(a, c) {
  function b (line 4985) | function b(a, c) {
  method modelObject (line 5030) | set modelObject(b) {
  method modelObject (line 5032) | get modelObject() {
  method objectInstance (line 5034) | get objectInstance() {
  method objectInstance (line 5036) | set objectInstance(b) {
  method modelObject (line 5065) | set modelObject(b) {
  method modelObject (line 5067) | get modelObject() {
  method objectSnapshot (line 5069) | get objectSnapshot() {
  method objectSnapshot (line 5071) | set objectSnapshot(b) {
  method modelObject (line 5158) | set modelObject(b) {
  method modelObject (line 5160) | get modelObject() {
  method slice (line 5162) | get slice() {
  method slice (line 5164) | set slice(b) {
  method currentView (line 5216) | get currentView() {
  method selection (line 5218) | get selection() {
  method selection (line 5220) | set selection(b) {
  function d (line 5253) | function d(a, c, b, e, d, m) {
  function b (line 5266) | function b(a) {
  function a (line 5270) | function a(a, c) {
  function c (line 5289) | function c(a,
  method visible (line 5409) | get visible() {
  method visible (line 5411) | set visible(a) {
  method obeyCloseEvents (line 5413) | get obeyCloseEvents() {
  method obeyCloseEvents (line 5415) | set obeyCloseEvents(a) {
  method toolbar (line 5419) | get toolbar() {
  method categories (line 5463) | set categories(b) {
  method settingUpdatedCallback (line 5466) | set settingUpdatedCallback(b) {
  function d (line 5506) | function d(a) {
  function b (line 5519) | function b(a, c) {
  method isAttachedToDocument_ (line 5528) | get isAttachedToDocument_() {
  method modelTrackContainer (line 5569) | set modelTrackContainer(a) {
  method scaleX (line 5573) | get scaleX() {
  method scaleX (line 5575) | set scaleX(a) {
  method panX (line 5578) | get panX() {
  method panX (line 5580) | set panX(a) {
  method panY (line 5582) | get panY() {
  method panY (line 5584) | set panY(a) {
  method gridEnabled (line 5605) | get gridEnabled() {
  method gridEnabled (line 5608) | set gridEnabled(a) {
  method gridTimebase (line 5610) | get gridTimebase() {
  method gridTimebase (line 5612) | set gridTimebase(a) {
  method gridStep (line 5614) | get gridStep() {
  method positionWorld (line 5651) | get positionWorld() {
  method positionWorld (line 5653) | set positionWorld(a) {
  method selected (line 5656) | set selected(a) {
  method selected (line 5660) | get selected() {
  method color (line 5662) | get color() {
  function d (line 5682) | function d(a) {
  function b (line 5690) | function b() {
  function a (line 5701) | function a(a, c) {
  method viewport (line 5781) | get viewport() {
  method categoryFilter (line 5788) | get categoryFilter() {
  method categoryFilter (line 5790) | set categoryFilter(a) {
  method canvas (line 5864) | get canvas() {
  method heading (line 5916) | get heading() {
  method heading (line 5918) | set heading(b) {
  method tooltip (line 5921) | set tooltip(b) {
  function d (line 6075) | function d() {
  method tracks_ (line 6115) | get tracks_() {
  function d (line 6136) | function d(b, a, c, e) {
  function d (line 6166) | function d() {
  function b (line 6169) | function b(a, b) {
  method asyncStyle (line 6182) | get asyncStyle() {
  method asyncStyle (line 6184) | set asyncStyle(a) {
  method slices (line 6186) | get slices() {
  method slices (line 6188) | set slices(a) {
  method height (line 6190) | get height() {
  method height (line 6192) | set height(a) {
  method hasVisibleContent (line 6194) | get hasVisibleContent() {
  method cpu (line 6295) | get cpu() {
  method cpu (line 6297) | set cpu(b) {
  method tooltip (line 6300) | get tooltip() {
  method tooltip (line 6302) | set tooltip(b) {
  method hasVisibleContent (line 6305) | get hasVisibleContent() {
  method objectInstances (line 6346) | get objectInstances() {
  method objectInstances (line 6348) | set objectInstances(a) {
  method height (line 6353) | get height() {
  method height (line 6355) | set height(a) {
  method snapshotRadiusView (line 6357) | get snapshotRadiusView() {
  function h (line 6403) | function h(a) {
  method objectInstances (line 6456) | set objectInstances(a) {
  method height (line 6469) | get height() {
  method height (line 6471) | set height(a) {
  method counter (line 6536) | get counter() {
  method counter (line 6538) | set counter(a) {
  method categoryFilter (line 6541) | get categoryFilter() {
  method categoryFilter (line 6544) | set categoryFilter(a) {
  method selectedSamples (line 6546) | get selectedSamples() {
  function g (line 6596) | function g(a, b) {
  method group (line 6639) | get group() {
  method group (line 6641) | set group(b) {
  method heading (line 6644) | get heading() {
  method heading (line 6646) | set heading(b) {
  method tooltip (line 6650) | get tooltip() {
  method tooltip (line 6652) | set tooltip(b) {
  method decorateHit (line 6655) | set decorateHit(b) {
  method subRows (line 6665) | get subRows() {
  method hasVisibleContent (line 6669) | get hasVisibleContent() {
  method thread (line 6771) | get thread() {
  method thread (line 6773) | set thread(b) {
  method hasVisibleContent (line 6776) | get hasVisibleContent() {
  function d (line 6816) | function d(a) {
  function h (line 6835) | function h(f) {
  function h (line 6881) | function h() {
  method processBase (line 6943) | get processBase() {
  method processBase (line 6945) | set processBase(b) {
  method expanded (line 6949) | get expanded() {
  method expanded (line 6951) | set expanded(b) {
  method hasVisibleContent (line 6955) | get hasVisibleContent() {
  method kernel (line 7020) | set kernel(a) {
  method kernel (line 7022) | get kernel() {
  method process (line 7061) | set process(a) {
  method process (line 7063) | get process() {
  method model (line 7095) | get model() {
  method model (line 7097) | set model(b) {
  method hasVisibleContent (line 7100) | get hasVisibleContent() {
  method mode (line 7200) | get mode() {
  method mode (line 7202) | set mode(b) {
  method viewport (line 7425) | get viewport() {
  method categoryFilter (line 7427) | get categoryFilter() {
  method categoryFilter (line 7429) | set categoryFilter(a) {
  method model (line 7434) | get model() {
  method model (line 7436) | set model(a) {
  method hasVisibleContent (line 7444) | get hasVisibleContent() {
  method focusElement (line 7454) | get focusElement() {
  method focusElement (line 7456) | set focusElement(a) {
  method listenToKeys_ (line 7458) | get listenToKeys_() {
  method keyHelp (line 7552) | get keyHelp() {
  method selection (line 7557) | get selection() {
  method selection (line 7559) | set selection(a) {
  function d (line 7702) | function d() {
  method controller (line 7749) | get controller() {
  method controller (line 7751) | set controller(a) {
  method timeline (line 7774) | get timeline() {
  method timeline (line 7776) | set timeline(a) {
  method filterText (line 7779) | get filterText() {
  method filterText (line 7781) | set filterText(a) {
  method filterHits (line 7784) | get filterHits() {
  method currentHitIndex (line 7790) | get currentHitIndex() {
  method modeKey_ (line 7828) | get modeKey_() {
  method target (line 7831) | get target() {
  method target (line 7833) | set target(b) {
  method horizontal (line 7836) | get horizontal() {
  method horizontal (line 7838) | set horizontal(b) {
  method vertical (line 7840) | get vertical() {
  method vertical (line 7842) | set vertical(b) {
  method targetStyleKey_ (line 7851) | get targetStyleKey_() {
  method leftControls (line 7995) | get leftControls() {
  method rightControls (line 7997) | get rightControls() {
  method viewTitle (line 7999) | get viewTitle() {
  method viewTitle (line 8001) | set viewTitle(b) {
  method traceData (line 8004) | set traceData(b) {
  method model (line 8006) | get model() {
  method model (line 8008) | set model(b) {
  method timeline (line 8016) | get timeline() {
  method settings (line 8018) | get settings() {
  method focusElement (line 8021) | set focusElement(b) {
  method focusElement (line 8025) | get focusElement() {
  method isAttachedToDocument_ (line 8027) | get isAttachedToDocument_() {
  method listenToKeys_ (line 8030) | get listenToKeys_() {

FILE: tools/adb/linux/systrace/systrace-legacy.py
  function add_adb_serial (line 38) | def add_adb_serial(command, serial):
  function main (line 44) | def main():
  function read_asset (line 221) | def read_asset(src_dir, filename):
  function get_assets (line 225) | def get_assets(src_dir, build_dir):

FILE: tools/adb/linux/systrace/systrace.py
  class OptionParserIgnoreErrors (line 25) | class OptionParserIgnoreErrors(optparse.OptionParser):
    method error (line 26) | def error(self, msg):
    method exit (line 29) | def exit(self):
    method print_usage (line 32) | def print_usage(self):
    method print_help (line 35) | def print_help(self):
    method print_version (line 38) | def print_version(self):
  function get_device_sdk_version (line 42) | def get_device_sdk_version():
  function add_adb_serial (line 63) | def add_adb_serial(command, serial):
  function main (line 69) | def main():
  function read_asset (line 286) | def read_asset(src_dir, filename):
  function get_assets (line 290) | def get_assets(src_dir, build_dir):

FILE: tools/adb/mac/systrace/script.js
  function d (line 122) | function d(a) {
  function b (line 127) | function b(a, c) {
  function a (line 133) | function a(a, c) {
  function c (line 139) | function c(a, c) {
  function e (line 145) | function e() {
  function f (line 184) | function f() {
  function g (line 195) | function g(a, c) {
  function h (line 218) | function h(a) {
  function k (line 227) | function k(a) {
  method moduleBasePath (line 242) | set moduleBasePath(a) {
  method moduleBasePath (line 244) | get moduleBasePath() {
  function d (line 290) | function d(a) {
  function d (line 361) | function d(a) {
  function d (line 390) | function d(a, c) {
  function b (line 396) | function b(a, c) {
  method value (line 405) | get value() {
  method timestamp (line 407) | set timestamp(a) {
  method length (line 424) | get length() {
  method name (line 426) | get name() {
  method color (line 428) | get color() {
  method samples (line 430) | get samples() {
  method timestamps (line 432) | get timestamps() {
  function d (line 461) | function d(c) {
  function b (line 469) | function b(a) {
  function d (line 554) | function d(a) {
  function d (line 593) | function d(a) {
  function d (line 621) | function d(c) {
  function b (line 634) | function b(a) {
  function d (line 676) | function d(a) {
  function d (line 764) | function d(a) {
  function d (line 792) | function d(a) {
  function d (line 845) | function d(a) {
  function d (line 902) | function d(a) {
  function d (line 1058) | function d(a) {
  function d (line 1114) | function d(a) {
  function d (line 1153) | function d(a) {
  function d (line 1487) | function d(a) {
  function d (line 1556) | function d(a) {
  function d (line 1622) | function d(a) {
  function d (line 1659) | function d(a) {
  function d (line 1699) | function d(a) {
  function d (line 1734) | function d() {
  function d (line 1790) | function d(b, a, c) {
  function d (line 1807) | function d() {
  method isEmpty (line 1816) | get isEmpty() {
  method min (line 1822) | get min() {
  method max (line 1824) | get max() {
  method range (line 1827) | get range() {
  method center (line 1829) | get center() {
  function d (line 1840) | function d() {
  function b (line 1843) | function b(a) {
  function a (line 1847) | function a(a) {
  function d (line 1901) | function d(b, a, c, e) {
  method guid (line 1912) | get guid() {
  method timestamps (line 1920) | set timestamps(b) {
  method seriesNames (line 1922) | set seriesNames(b) {
  method seriesColors (line 1924) | set seriesColors(b) {
  method samples (line 1926) | set samples(b) {
  method series (line 1932) | get series() {
  method numSeries (line 1934) | get numSeries() {
  method numSamples (line 1936) | get numSamples() {
  method timestamps (line 1938) | get timestamps() {
  function d (line 1979) | function d(b, a, c, e, f) {
  method end (line 1989) | get end() {
  function d (line 1998) | function d(b, a, c, e, f, g) {
  method end (line 2004) | get end() {
  function d (line 2015) | function d(a) {
  function d (line 2048) | function d(a, c, b) {
  function b (line 2054) | function b(a, c, b, f, g, h) {
  function d (line 2077) | function d(b, a) {
  function d (line 2151) | function d(b, a, c) {
  function d (line 2182) | function d(b, a, c, e, f) {
  method typeName (line 2198) | get typeName() {
  function d (line 2267) | function d(b, a, c) {
  method lastInstance (line 2307) | get lastInstance() {
  function d (line 2336) | function d(b) {
  function d (line 2434) | function d(b, a, c, e, f) {
  function d (line 2453) | function d() {
  method length (line 2461) | get length() {
  function d (line 2489) | function d(b, a, c, e, f) {
  function d (line 2502) | function d(a) {
  method length (line 2511) | get length() {
  method openSliceCount (line 2529) | get openSliceCount() {
  method mostRecentlyOpenedPartialSlice (line 2531) | get mostRecentlyOpenedPartialSlice() {
  function d (line 2606) | function d(c, b, e, d, l, m) {
  function b (line 2611) | function b(a, b) {
  method guid (line 2629) | get guid() {
  method samples (line 2646) | get samples() {
  method isEmpty (line 2654) | get isEmpty() {
  method userFriendlyName (line 2684) | get userFriendlyName() {
  method userFriendlyDetails (line 2686) | get userFriendlyDetails() {
  function d (line 2706) | function d() {
  function d (line 2760) | function d(a) {
  function d (line 2816) | function d(a) {
  method guid (line 2833) | get guid() {
  method numThreads (line 2835) | get numThreads() {
  function d (line 2902) | function d(c) {
  method userFriendlyName (line 2915) | get userFriendlyName() {
  method userFriendlyDetails (line 2917) | get userFriendlyDetails() {
  function d (line 2944) | function d(b, a) {
  method userFriendlyName (line 2968) | get userFriendlyName() {
  method userFriendlyDetails (line 2973) | get userFriendlyDetails() {
  function d (line 2992) | function d(a, b) {
  function b (line 3003) | function b(a) {
  method numProcesses (line 3013) | get numProcesses() {
  function d (line 3139) | function d(a) {
  function b (line 3143) | function b(a, c) {
  function a (line 3159) | function a(a) {
  function b (line 3234) | function b(a) {
  function e (line 3239) | function e(a, c) {
  method model (line 3266) | get model() {
  function d (line 3488) | function d(a, c, b, e) {
  function b (line 3496) | function b() {
  function a (line 3503) | function a(a, c, b) {
  function c (line 3507) | function c(c, b, e, f) {
  function d (line 3627) | function d(a, c, b, e, d) {
  function b (line 3632) | function b(a, c, b, k, l) {
  function a (line 3637) | function a(a, c, b, k, l) {
  function c (line 3642) | function c(a, c, b, k, l) {
  function d (line 3661) | function d(a) {
  function b (line 3678) | function b(a, c) {
  function a (line 3827) | function a(a) {
  function c (line 3881) | function c(c, b, e, d) {
  function b (line 3902) | function b(a, c, d, k) {
  function d (line 3940) | function d(g, h, m) {
  function h (line 3948) | function h(a) {
  function d (line 3966) | function d() {
  function d (line 4075) | function d() {
  function d (line 4178) | function d() {
  function b (line 4181) | function b(a) {
  function d (line 4252) | function d(a, b) {
  function d (line 4387) | function d(a, c) {
  function b (line 4392) | function b(a, c, b) {
  function a (line 4398) | function a(a, c) {
  function c (line 4403) | function c(a, c) {
  function e (line 4408) | function e(a) {
  method modelObject (line 4417) | get modelObject() {
  method selected (line 4419) | get selected() {
  method selected (line 4421) | set selected(a) {
  method modelObject (line 4430) | get modelObject() {
  method selected (line 4432) | get selected() {
  method selected (line 4434) | set selected(a) {
  method modelObject (line 4441) | get modelObject() {
  method selected (line 4443) | get selected() {
  method selected (line 4446) | set selected(a) {
  method modelObject (line 4453) | get modelObject() {
  method selected (line 4455) | get selected() {
  method selected (line 4457) | set selected(a) {
  method bounds (line 4472) | get bounds() {
  method duration (line 4479) | get duration() {
  method length (line 4481) | get length() {
  method guid (line 4483) | get guid() {
  function a (line 4595) | function a() {
  method objectSnapshot (line 4651) | set objectSnapshot(a) {
  method objectInstance (line 4662) | set objectInstance(a) {
  method object (line 4682) | get object() {
  method object (line 4684) | set object(b) {
  function d (line 4847) | function d(b, a) {
  function d (line 4911) | function d(a, c) {
  function b (line 4920) | function b(a, c) {
  method modelObject (line 4965) | set modelObject(b) {
  method modelObject (line 4967) | get modelObject() {
  method objectInstance (line 4969) | get objectInstance() {
  method objectInstance (line 4971) | set objectInstance(b) {
  method modelObject (line 5000) | set modelObject(b) {
  method modelObject (line 5002) | get modelObject() {
  method objectSnapshot (line 5004) | get objectSnapshot() {
  method objectSnapshot (line 5006) | set objectSnapshot(b) {
  method modelObject (line 5093) | set modelObject(b) {
  method modelObject (line 5095) | get modelObject() {
  method slice (line 5097) | get slice() {
  method slice (line 5099) | set slice(b) {
  method currentView (line 5151) | get currentView() {
  method selection (line 5153) | get selection() {
  method selection (line 5155) | set selection(b) {
  function d (line 5188) | function d(a, c, b, e, d, m) {
  function b (line 5201) | function b(a) {
  function a (line 5205) | function a(a, c) {
  function c (line 5224) | function c(a,
  method visible (line 5344) | get visible() {
  method visible (line 5346) | set visible(a) {
  method obeyCloseEvents (line 5348) | get obeyCloseEvents() {
  method obeyCloseEvents (line 5350) | set obeyCloseEvents(a) {
  method toolbar (line 5354) | get toolbar() {
  method categories (line 5398) | set categories(b) {
  method settingUpdatedCallback (line 5401) | set settingUpdatedCallback(b) {
  function d (line 5441) | function d(a) {
  function b (line 5454) | function b(a, c) {
  method isAttachedToDocument_ (line 5463) | get isAttachedToDocument_() {
  method modelTrackContainer (line 5504) | set modelTrackContainer(a) {
  method scaleX (line 5508) | get scaleX() {
  method scaleX (line 5510) | set scaleX(a) {
  method panX (line 5513) | get panX() {
  method panX (line 5515) | set panX(a) {
  method panY (line 5517) | get panY() {
  method panY (line 5519) | set panY(a) {
  method gridEnabled (line 5540) | get gridEnabled() {
  method gridEnabled (line 5543) | set gridEnabled(a) {
  method gridTimebase (line 5545) | get gridTimebase() {
  method gridTimebase (line 5547) | set gridTimebase(a) {
  method gridStep (line 5549) | get gridStep() {
  method positionWorld (line 5586) | get positionWorld() {
  method positionWorld (line 5588) | set positionWorld(a) {
  method selected (line 5591) | set selected(a) {
  method selected (line 5595) | get selected() {
  method color (line 5597) | get color() {
  function d (line 5617) | function d(a) {
  function b (line 5625) | function b() {
  function a (line 5636) | function a() {
  function c (line 5643) | function c(c, e) {
  method viewport (line 5723) | get viewport() {
  method categoryFilter (line 5730) | get categoryFilter() {
  method categoryFilter (line 5732) | set categoryFilter(a) {
  method canvas (line 5806) | get canvas() {
  method heading (line 5858) | get heading() {
  method heading (line 5860) | set heading(b) {
  method tooltip (line 5863) | set tooltip(b) {
  function d (line 6017) | function d() {
  method tracks_ (line 6057) | get tracks_() {
  function d (line 6078) | function d(b, a, c, e) {
  function d (line 6108) | function d() {
  function b (line 6111) | function b(a, b) {
  method asyncStyle (line 6124) | get asyncStyle() {
  method asyncStyle (line 6126) | set asyncStyle(a) {
  method slices (line 6128) | get slices() {
  method slices (line 6130) | set slices(a) {
  method height (line 6132) | get height() {
  method height (line 6134) | set height(a) {
  method hasVisibleContent (line 6136) | get hasVisibleContent() {
  method cpu (line 6237) | get cpu() {
  method cpu (line 6239) | set cpu(b) {
  method tooltip (line 6242) | get tooltip() {
  method tooltip (line 6244) | set tooltip(b) {
  method hasVisibleContent (line 6247) | get hasVisibleContent() {
  method objectInstances (line 6288) | get objectInstances() {
  method objectInstances (line 6290) | set objectInstances(a) {
  method height (line 6295) | get height() {
  method height (line 6297) | set height(a) {
  method snapshotRadiusView (line 6299) | get snapshotRadiusView() {
  function h (line 6345) | function h(a) {
  method objectInstances (line 6398) | set objectInstances(a) {
  method height (line 6411) | get height() {
  method height (line 6413) | set height(a) {
  method counter (line 6478) | get counter() {
  method counter (line 6480) | set counter(a) {
  method categoryFilter (line 6483) | get categoryFilter() {
  method categoryFilter (line 6486) | set categoryFilter(a) {
  method selectedSamples (line 6488) | get selectedSamples() {
  function g (line 6539) | function g(a, b) {
  method group (line 6582) | get group() {
  method group (line 6584) | set group(b) {
  method heading (line 6587) | get heading() {
  method heading (line 6589) | set heading(b) {
  method tooltip (line 6593) | get tooltip() {
  method tooltip (line 6595) | set tooltip(b) {
  method decorateHit (line 6598) | set decorateHit(b) {
  method subRows (line 6608) | get subRows() {
  method hasVisibleContent (line 6612) | get hasVisibleContent() {
  method thread (line 6714) | get thread() {
  method thread (line 6716) | set thread(b) {
  method hasVisibleContent (line 6719) | get hasVisibleContent() {
  function d (line 6759) | function d(a) {
  function h (line 6778) | function h(d) {
  function h (line 6824) | function h() {
  method processBase (line 6886) | get processBase() {
  method processBase (line 6888) | set processBase(b) {
  method expanded (line 6892) | get expanded() {
  method expanded (line 6894) | set expanded(b) {
  method hasVisibleContent (line 6898) | get hasVisibleContent() {
  method kernel (line 6963) | set kernel(a) {
  method kernel (line 6965) | get kernel() {
  method process (line 7004) | set process(a) {
  method process (line 7006) | get process() {
  method model (line 7038) | get model() {
  method model (line 7040) | set model(b) {
  method hasVisibleContent (line 7043) | get hasVisibleContent() {
  method mode (line 7143) | get mode() {
  method mode (line 7145) | set mode(b) {
  method viewport (line 7368) | get viewport() {
  method categoryFilter (line 7370) | get categoryFilter() {
  method categoryFilter (line 7372) | set categoryFilter(a) {
  method model (line 7377) | get model() {
  method model (line 7379) | set model(a) {
  method hasVisibleContent (line 7387) | get hasVisibleContent() {
  method focusElement (line 7397) | get focusElement() {
  method focusElement (line 7399) | set focusElement(a) {
  method listenToKeys_ (line 7401) | get listenToKeys_() {
  method keyHelp (line 7495) | get keyHelp() {
  method selection (line 7500) | get selection() {
  method selection (line 7502) | set selection(a) {
  function d (line 7645) | function d() {
  method controller (line 7692) | get controller() {
  method controller (line 7694) | set controller(a) {
  method timeline (line 7717) | get timeline() {
  method timeline (line 7719) | set timeline(a) {
  method filterText (line 7722) | get filterText() {
  method filterText (line 7724) | set filterText(a) {
  method filterHits (line 7727) | get filterHits() {
  method currentHitIndex (line 7733) | get currentHitIndex() {
  method modeKey_ (line 7771) | get modeKey_() {
  method target (line 7774) | get target() {
  method target (line 7776) | set target(b) {
  method horizontal (line 7779) | get horizontal() {
  method horizontal (line 7781) | set horizontal(b) {
  method vertical (line 7783) | get vertical() {
  method vertical (line 7785) | set vertical(b) {
  method targetStyleKey_ (line 7794) | get targetStyleKey_() {
  method leftControls (line 7938) | get leftControls() {
  method rightControls (line 7940) | get rightControls() {
  method viewTitle (line 7942) | get viewTitle() {
  method viewTitle (line 7944) | set viewTitle(b) {
  method traceData (line 7947) | set traceData(b) {
  method model (line 7949) | get model() {
  method model (line 7951) | set model(b) {
  method timeline (line 7959) | get timeline() {
  method settings (line 7961) | get settings() {
  method focusElement (line 7964) | set focusElement(b) {
  method focusElement (line 7968) | get focusElement() {
  method isAttachedToDocument_ (line 7970) | get isAttachedToDocument_() {
  method listenToKeys_ (line 7973) | get listenToKeys_() {

FILE: tools/adb/mac/systrace/systrace-legacy.py
  function add_adb_serial (line 38) | def add_adb_serial(command, serial):
  function main (line 44) | def main():
  function read_asset (line 221) | def read_asset(src_dir, filename):
  function get_assets (line 225) | def get_assets(src_dir, build_dir):

FILE: tools/adb/mac/systrace/systrace.py
  class OptionParserIgnoreErrors (line 25) | class OptionParserIgnoreErrors(optparse.OptionParser):
    method error (line 26) | def error(self, msg):
    method exit (line 29) | def exit(self):
    method print_usage (line 32) | def print_usage(self):
    method print_help (line 35) | def print_help(self):
    method print_version (line 38) | def print_version(self):
  function get_device_sdk_version (line 42) | def get_device_sdk_version():
  function add_adb_serial (line 63) | def add_adb_serial(command, serial):
  function main (line 69) | def main():
  function read_asset (line 286) | def read_asset(src_dir, filename):
  function get_assets (line 290) | def get_assets(src_dir, build_dir):

FILE: tools/adb/windows/systrace/script.js
  function d (line 122) | function d(a) {
  function b (line 127) | function b(a, c) {
  function a (line 133) | function a(a, c) {
  function c (line 139) | function c(a, c) {
  function e (line 145) | function e() {
  function f (line 184) | function f() {
  function g (line 195) | function g(a, c) {
  function h (line 218) | function h(a) {
  function k (line 227) | function k(a) {
  method moduleBasePath (line 242) | set moduleBasePath(a) {
  method moduleBasePath (line 244) | get moduleBasePath() {
  function d (line 290) | function d(a) {
  function d (line 361) | function d(a) {
  function d (line 390) | function d(a, c) {
  function b (line 396) | function b(a, c) {
  method value (line 405) | get value() {
  method timestamp (line 407) | set timestamp(a) {
  method length (line 424) | get length() {
  method name (line 426) | get name() {
  method color (line 428) | get color() {
  method samples (line 430) | get samples() {
  method timestamps (line 432) | get timestamps() {
  function d (line 461) | function d(c) {
  function b (line 469) | function b(a) {
  function d (line 554) | function d(a) {
  function d (line 593) | function d(a) {
  function d (line 621) | function d(c) {
  function b (line 634) | function b(a) {
  function d (line 676) | function d(a) {
  function d (line 764) | function d(a) {
  function d (line 792) | function d(a) {
  function d (line 845) | function d(a) {
  function d (line 902) | function d(a) {
  function d (line 1058) | function d(a) {
  function d (line 1114) | function d(a) {
  function d (line 1153) | function d(a) {
  function d (line 1487) | function d(a) {
  function d (line 1556) | function d(a) {
  function d (line 1622) | function d(a) {
  function d (line 1659) | function d(a) {
  function d (line 1699) | function d(a) {
  function d (line 1734) | function d() {
  function d (line 1790) | function d(b, a, c) {
  function d (line 1807) | function d() {
  method isEmpty (line 1816) | get isEmpty() {
  method min (line 1822) | get min() {
  method max (line 1824) | get max() {
  method range (line 1827) | get range() {
  method center (line 1829) | get center() {
  function d (line 1840) | function d() {
  function b (line 1843) | function b(a) {
  function a (line 1847) | function a(a) {
  function d (line 1901) | function d(b, a, c, e) {
  method guid (line 1912) | get guid() {
  method timestamps (line 1920) | set timestamps(b) {
  method seriesNames (line 1922) | set seriesNames(b) {
  method seriesColors (line 1924) | set seriesColors(b) {
  method samples (line 1926) | set samples(b) {
  method series (line 1932) | get series() {
  method numSeries (line 1934) | get numSeries() {
  method numSamples (line 1936) | get numSamples() {
  method timestamps (line 1938) | get timestamps() {
  function d (line 1979) | function d(b, a, c, e, f) {
  method end (line 1989) | get end() {
  function d (line 1998) | function d(b, a, c, e, f, g) {
  method end (line 2004) | get end() {
  function d (line 2015) | function d(a) {
  function d (line 2048) | function d(a, c, b) {
  function b (line 2054) | function b(a, c, b, f, g, h) {
  function d (line 2077) | function d(b, a) {
  function d (line 2151) | function d(b, a, c) {
  function d (line 2182) | function d(b, a, c, e, f) {
  method typeName (line 2198) | get typeName() {
  function d (line 2267) | function d(b, a, c) {
  method lastInstance (line 2307) | get lastInstance() {
  function d (line 2336) | function d(b) {
  function d (line 2434) | function d(b, a, c, e, f) {
  function d (line 2453) | function d() {
  method length (line 2461) | get length() {
  function d (line 2489) | function d(b, a, c, e, f) {
  function d (line 2502) | function d(a) {
  method length (line 2511) | get length() {
  method openSliceCount (line 2529) | get openSliceCount() {
  method mostRecentlyOpenedPartialSlice (line 2531) | get mostRecentlyOpenedPartialSlice() {
  function d (line 2606) | function d(c, b, e, d, l, m) {
  function b (line 2611) | function b(a, b) {
  method guid (line 2629) | get guid() {
  method samples (line 2646) | get samples() {
  method isEmpty (line 2654) | get isEmpty() {
  method userFriendlyName (line 2684) | get userFriendlyName() {
  method userFriendlyDetails (line 2686) | get userFriendlyDetails() {
  function d (line 2706) | function d() {
  function d (line 2760) | function d(a) {
  function d (line 2816) | function d(a) {
  method guid (line 2833) | get guid() {
  method numThreads (line 2835) | get numThreads() {
  function d (line 2902) | function d(c) {
  method userFriendlyName (line 2915) | get userFriendlyName() {
  method userFriendlyDetails (line 2917) | get userFriendlyDetails() {
  function d (line 2944) | function d(b, a) {
  method userFriendlyName (line 2968) | get userFriendlyName() {
  method userFriendlyDetails (line 2973) | get userFriendlyDetails() {
  function d (line 2992) | function d(a, b) {
  function b (line 3003) | function b(a) {
  method numProcesses (line 3013) | get numProcesses() {
  function d (line 3139) | function d(a) {
  function b (line 3143) | function b(a, c) {
  function a (line 3159) | function a(a) {
  function b (line 3234) | function b(a) {
  function e (line 3239) | function e(a, c) {
  method model (line 3266) | get model() {
  function d (line 3488) | function d(a, c, b, e) {
  function b (line 3496) | function b() {
  function a (line 3503) | function a(a, c, b) {
  function c (line 3507) | function c(c, b, e, f) {
  function d (line 3627) | function d(a, c, b, e, d) {
  function b (line 3632) | function b(a, c, b, k, l) {
  function a (line 3637) | function a(a, c, b, k, l) {
  function c (line 3642) | function c(a, c, b, k, l) {
  function d (line 3661) | function d(a) {
  function b (line 3678) | function b(a, c) {
  function a (line 3827) | function a(a) {
  function c (line 3881) | function c(c, b, e, d) {
  function b (line 3902) | function b(a, c, d, k) {
  function d (line 3940) | function d(g, h, m) {
  function h (line 3948) | function h(a) {
  function d (line 3966) | function d() {
  function d (line 4075) | function d() {
  function d (line 4178) | function d() {
  function b (line 4181) | function b(a) {
  function d (line 4252) | function d(a, b) {
  function d (line 4387) | function d(a, c) {
  function b (line 4392) | function b(a, c, b) {
  function a (line 4398) | function a(a, c) {
  function c (line 4403) | function c(a, c) {
  function e (line 4408) | function e(a) {
  method modelObject (line 4417) | get modelObject() {
  method selected (line 4419) | get selected() {
  method selected (line 4421) | set selected(a) {
  method modelObject (line 4430) | get modelObject() {
  method selected (line 4432) | get selected() {
  method selected (line 4434) | set selected(a) {
  method modelObject (line 4441) | get modelObject() {
  method selected (line 4443) | get selected() {
  method selected (line 4446) | set selected(a) {
  method modelObject (line 4453) | get modelObject() {
  method selected (line 4455) | get selected() {
  method selected (line 4457) | set selected(a) {
  method bounds (line 4472) | get bounds() {
  method duration (line 4479) | get duration() {
  method length (line 4481) | get length() {
  method guid (line 4483) | get guid() {
  function a (line 4595) | function a() {
  method objectSnapshot (line 4651) | set objectSnapshot(a) {
  method objectInstance (line 4662) | set objectInstance(a) {
  method object (line 4682) | get object() {
  method object (line 4684) | set object(b) {
  function d (line 4847) | function d(b, a) {
  function d (line 4911) | function d(a, c) {
  function b (line 4920) | function b(a, c) {
  method modelObject (line 4965) | set modelObject(b) {
  method modelObject (line 4967) | get modelObject() {
  method objectInstance (line 4969) | get objectInstance() {
  method objectInstance (line 4971) | set objectInstance(b) {
  method modelObject (line 5000) | set modelObject(b) {
  method modelObject (line 5002) | get modelObject() {
  method objectSnapshot (line 5004) | get objectSnapshot() {
  method objectSnapshot (line 5006) | set objectSnapshot(b) {
  method modelObject (line 5093) | set modelObject(b) {
  method modelObject (line 5095) | get modelObject() {
  method slice (line 5097) | get slice() {
  method slice (line 5099) | set slice(b) {
  method currentView (line 5151) | get currentView() {
  method selection (line 5153) | get selection() {
  method selection (line 5155) | set selection(b) {
  function d (line 5188) | function d(a, c, b, e, d, m) {
  function b (line 5201) | function b(a) {
  function a (line 5205) | function a(a, c) {
  function c (line 5224) | function c(a,
  method visible (line 5344) | get visible() {
  method visible (line 5346) | set visible(a) {
  method obeyCloseEvents (line 5348) | get obeyCloseEvents() {
  method obeyCloseEvents (line 5350) | set obeyCloseEvents(a) {
  method toolbar (line 5354) | get toolbar() {
  method categories (line 5398) | set categories(b) {
  method settingUpdatedCallback (line 5401) | set settingUpdatedCallback(b) {
  function d (line 5441) | function d(a) {
  function b (line 5454) | function b(a, c) {
  method isAttachedToDocument_ (line 5463) | get isAttachedToDocument_() {
  method modelTrackContainer (line 5504) | set modelTrackContainer(a) {
  method scaleX (line 5508) | get scaleX() {
  method scaleX (line 5510) | set scaleX(a) {
  method panX (line 5513) | get panX() {
  method panX (line 5515) | set panX(a) {
  method panY (line 5517) | get panY() {
  method panY (line 5519) | set panY(a) {
  method gridEnabled (line 5540) | get gridEnabled() {
  method gridEnabled (line 5543) | set gridEnabled(a) {
  method gridTimebase (line 5545) | get gridTimebase() {
  method gridTimebase (line 5547) | set gridTimebase(a) {
  method gridStep (line 5549) | get gridStep() {
  method positionWorld (line 5586) | get positionWorld() {
  method positionWorld (line 5588) | set positionWorld(a) {
  method selected (line 5591) | set selected(a) {
  method selected (line 5595) | get selected() {
  method color (line 5597) | get color() {
  function d (line 5617) | function d(a) {
  function b (line 5625) | function b() {
  function a (line 5636) | function a() {
  function c (line 5643) | function c(c, e) {
  method viewport (line 5723) | get viewport() {
  method categoryFilter (line 5730) | get categoryFilter() {
  method categoryFilter (line 5732) | set categoryFilter(a) {
  method canvas (line 5806) | get canvas() {
  method heading (line 5858) | get heading() {
  method heading (line 5860) | set heading(b) {
  method tooltip (line 5863) | set tooltip(b) {
  function d (line 6017) | function d() {
  method tracks_ (line 6057) | get tracks_() {
  function d (line 6078) | function d(b, a, c, e) {
  function d (line 6108) | function d() {
  function b (line 6111) | function b(a, b) {
  method asyncStyle (line 6124) | get asyncStyle() {
  method asyncStyle (line 6126) | set asyncStyle(a) {
  method slices (line 6128) | get slices() {
  method slices (line 6130) | set slices(a) {
  method height (line 6132) | get height() {
  method height (line 6134) | set height(a) {
  method hasVisibleContent (line 6136) | get hasVisibleContent() {
  method cpu (line 6237) | get cpu() {
  method cpu (line 6239) | set cpu(b) {
  method tooltip (line 6242) | get tooltip() {
  method tooltip (line 6244) | set tooltip(b) {
  method hasVisibleContent (line 6247) | get hasVisibleContent() {
  method objectInstances (line 6288) | get objectInstances() {
  method objectInstances (line 6290) | set objectInstances(a) {
  method height (line 6295) | get height() {
  method height (line 6297) | set height(a) {
  method snapshotRadiusView (line 6299) | get snapshotRadiusView() {
  function h (line 6345) | function h(a) {
  method objectInstances (line 6398) | set objectInstances(a) {
  method height (line 6411) | get height() {
  method height (line 6413) | set height(a) {
  method counter (line 6478) | get counter() {
  method counter (line 6480) | set counter(a) {
  method categoryFilter (line 6483) | get categoryFilter() {
  method categoryFilter (line 6486) | set categoryFilter(a) {
  method selectedSamples (line 6488) | get selectedSamples() {
  function g (line 6539) | function g(a, b) {
  method group (line 6582) | get group() {
  method group (line 6584) | set group(b) {
  method heading (line 6587) | get heading() {
  method heading (line 6589) | set heading(b) {
  method tooltip (line 6593) | get tooltip() {
  method tooltip (line 6595) | set tooltip(b) {
  method decorateHit (line 6598) | set decorateHit(b) {
  method subRows (line 6608) | get subRows() {
  method hasVisibleContent (line 6612) | get hasVisibleContent() {
  method thread (line 6714) | get thread() {
  method thread (line 6716) | set thread(b) {
  method hasVisibleContent (line 6719) | get hasVisibleContent() {
  function d (line 6759) | function d(a) {
  function h (line 6778) | function h(d) {
  function h (line 6824) | function h() {
  method processBase (line 6886) | get processBase() {
  method processBase (line 6888) | set processBase(b) {
  method expanded (line 6892) | get expanded() {
  method expanded (line 6894) | set expanded(b) {
  method hasVisibleContent (line 6898) | get hasVisibleContent() {
  method kernel (line 6963) | set kernel(a) {
  method kernel (line 6965) | get kernel() {
  method process (line 7004) | set process(a) {
  method process (line 7006) | get process() {
  method model (line 7038) | get model() {
  method model (line 7040) | set model(b) {
  method hasVisibleContent (line 7043) | get hasVisibleContent() {
  method mode (line 7143) | get mode() {
  method mode (line 7145) | set mode(b) {
  method viewport (line 7368) | get viewport() {
  method categoryFilter (line 7370) | get categoryFilter() {
  method categoryFilter (line 7372) | set categoryFilter(a) {
  method model (line 7377) | get model() {
  method model (line 7379) | set model(a) {
  method hasVisibleContent (line 7387) | get hasVisibleContent() {
  method focusElement (line 7397) | get focusElement() {
  method focusElement (line 7399) | set focusElement(a) {
  method listenToKeys_ (line 7401) | get listenToKeys_() {
  method keyHelp (line 7495) | get keyHelp() {
  method selection (line 7500) | get selection() {
  method selection (line 7502) | set selection(a) {
  function d (line 7645) | function d() {
  method controller (line 7692) | get controller() {
  method controller (line 7694) | set controller(a) {
  method timeline (line 7717) | get timeline() {
  method timeline (line 7719) | set timeline(a) {
  method filterText (line 7722) | get filterText() {
  method filterText (line 7724) | set filterText(a) {
  method filterHits (line 7727) | get filterHits() {
  method currentHitIndex (line 7733) | get currentHitIndex() {
  method modeKey_ (line 7771) | get modeKey_() {
  method target (line 7774) | get target() {
  method target (line 7776) | set target(b) {
  method horizontal (line 7779) | get horizontal() {
  method horizontal (line 7781) | set horizontal(b) {
  method vertical (line 7783) | get vertical() {
  method vertical (line 7785) | set vertical(b) {
  method targetStyleKey_ (line 7794) | get targetStyleKey_() {
  method leftControls (line 7938) | get leftControls() {
  method rightControls (line 7940) | get rightControls() {
  method viewTitle (line 7942) | get viewTitle() {
  method viewTitle (line 7944) | set viewTitle(b) {
  method traceData (line 7947) | set traceData(b) {
  method model (line 7949) | get model() {
  method model (line 7951) | set model(b) {
  method timeline (line 7959) | get timeline() {
  method settings (line 7961) | get settings() {
  method focusElement (line 7964) | set focusElement(b) {
  method focusElement (line 7968) | get focusElement() {
  method isAttachedToDocument_ (line 7970) | get isAttachedToDocument_() {
  method listenToKeys_ (line 7973) | get listenToKeys_() {

FILE: tools/adb/windows/systrace/systrace-legacy.py
  function add_adb_serial (line 38) | def add_adb_serial(command, serial):
  function main (line 44) | def main():
  function read_asset (line 221) | def read_asset(src_dir, filename):
  function get_assets (line 225) | def get_assets(src_dir, build_dir):

FILE: tools/adb/windows/systrace/systrace.py
  class OptionParserIgnoreErrors (line 25) | class OptionParserIgnoreErrors(optparse.OptionParser):
    method error (line 26) | def error(self, msg):
    method exit (line 29) | def exit(self):
    method print_usage (line 32) | def print_usage(self):
    method print_help (line 35) | def print_help(self):
    method print_version (line 38) | def print_version(self):
  function get_device_sdk_version (line 42) | def get_device_sdk_version():
  function add_adb_serial (line 63) | def add_adb_serial(command, serial):
  function main (line 69) | def main():
  function read_asset (line 286) | def read_asset(src_dir, filename):
  function get_assets (line 290) | def get_assets(src_dir, build_dir):

FILE: utils/fileutils.py
  class FileUtils (line 9) | class FileUtils:
    method __init__ (line 10) | def __init__(self):
    method is_file_exit (line 14) | def is_file_exit(file_path):
    method is_dir_exit (line 18) | def is_dir_exit(dir_path):
    method is_dir_empty (line 22) | def is_dir_empty(dir_path):
    method create_dir (line 29) | def create_dir(to_create_path):
    method delete_file (line 39) | def delete_file(to_del_file):
    method delete_dirs (line 44) | def delete_dirs(to_del_dirs):

FILE: utils/manager.py
  class Manager (line 19) | class Manager:
    method __init__ (line 20) | def __init__(self, sdk_path):
    method start (line 30) | def start(self):
    method scan (line 81) | def scan(self, is_aar):
    method save_report (line 90) | def save_report(self):
    method get_class_file (line 97) | def get_class_file(self, jar_path):
    method cfr_decompile (line 108) | def cfr_decompile(self, jar_path, count):
    method smali_decompile (line 129) | def smali_decompile(self, jar_path):
    method _init_path (line 153) | def _init_path(self):
    method _init_log (line 175) | def _init_log(self):
    method delete (line 192) | def delete(self):

FILE: utils/md5.py
  class Md5 (line 9) | class Md5:
    method __init__ (line 10) | def __init__(self):
    method md5 (line 14) | def md5(words):
    method md5_file (line 20) | def md5_file(file_path):

FILE: utils/sdkinfo.py
  class SdkInfo (line 5) | class SdkInfo:
    method __init__ (line 6) | def __init__(self):

FILE: utils/tool.py
  class Tools (line 6) | class Tools:
    method xml_assent (line 8) | def xml_assent(word):

FILE: utils/ziputils.py
  class ZipUtils (line 10) | class ZipUtils:
    method unzip (line 12) | def unzip(file_path, dst_path):
Copy disabled (too large) Download .json
Condensed preview — 91 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (11,092K chars).
[
  {
    "path": ".gitattributes",
    "chars": 93,
    "preview": "*.js linguist-language=python\n*.css linguist-language=python\n*.html linguist-language=python\n"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "README.md",
    "chars": 1405,
    "preview": "# Coeus\n\nCoeus:\n  Coeus was one of the Titans, son of Uranus and Gaia. His name means questioning.\n  \n  if we need impor"
  },
  {
    "path": "coeus.py",
    "chars": 569,
    "preview": "# coding: utf-8\nfrom utils.manager import Manager\n\n__author__ = 'deff'\nimport sys\nimport os\nif len(sys.argv) < 1:\n    pr"
  },
  {
    "path": "config.py",
    "chars": 1069,
    "preview": "# coding: utf-8\n__author__ = 'deff'\n\nimport os\n\n\nclass Config:\n    RESULT_PATH = os.path.join(os.path.dirname(os.path.re"
  },
  {
    "path": "report.xml",
    "chars": 14393,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<coeus>\n    <sdkinfo>\n        <sdkname>getui_2.13.3.0-gisdk_3.1.9.1-gssdk_2.3.0.0"
  },
  {
    "path": "result/20191224-11-28-55/info.log",
    "chars": 1132,
    "preview": "2019-12-24 11:28:55 manager.py[line:32] INFO start sdk scan..\n2019-12-24 11:28:55 manager.py[line:46] INFO start unzip.."
  },
  {
    "path": "result/20191224-11-28-55/report.xml",
    "chars": 21853,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<sdkscan>\n    <sdkinfo>\n        <sdkname>getui_2.13.3.0-gisdk_3.1.9.1-gssdk_2.3.0"
  },
  {
    "path": "scanner/__init__.py",
    "chars": 36,
    "preview": "# coding: utf-8\n__author__ = 'deff'\n"
  },
  {
    "path": "scanner/base.py",
    "chars": 474,
    "preview": "# coding: utf-8\nimport logging\n\n__author__ = 'deff'\n\n\nclass BaseScanner:\n    def __init__(self):\n        pass\n\n    # 做初始"
  },
  {
    "path": "scanner/dynamic.py",
    "chars": 445,
    "preview": "# coding: utf-8\n__author__ = 'deff'\n\nfrom scanner.base import BaseScanner\n\n\n##动态信息\n\nclass DynamicScanner(BaseScanner):\n "
  },
  {
    "path": "scanner/dynamicscanner/__init__.py",
    "chars": 36,
    "preview": "# coding: utf-8\n__author__ = 'deff'\n"
  },
  {
    "path": "scanner/fuzz/__init__.py",
    "chars": 655,
    "preview": "# coding: utf-8\n__author__ = 'deff'\n\n\n# Andoid-afl.https://github.com/ele7enxxh/android-afl\n# Fuzzing with libFuzzer.\n# "
  },
  {
    "path": "scanner/static.py",
    "chars": 1151,
    "preview": "# coding: utf-8\nfrom scanner.staticscanner.policy import PolicyScanner\nfrom scanner.base import BaseScanner\nfrom scanner"
  },
  {
    "path": "scanner/staticscanner/__init__.py",
    "chars": 36,
    "preview": "# coding: utf-8\n__author__ = 'deff'\n"
  },
  {
    "path": "scanner/staticscanner/api.py",
    "chars": 7431,
    "preview": "# coding: utf-8\nimport os\nimport re\n\nfrom utils.tool import Tools\n\n__author__ = 'deff'\n\nfrom scanner.base import BaseSca"
  },
  {
    "path": "scanner/staticscanner/info.py",
    "chars": 4450,
    "preview": "# coding: utf-8\nimport re\nimport os\n\nfrom utils.fileutils import FileUtils\nfrom utils.md5 import Md5\nfrom scanner.base i"
  },
  {
    "path": "scanner/staticscanner/policy.py",
    "chars": 5269,
    "preview": "# coding: utf-8\nimport linecache\nimport logging\nimport os\nimport json\n\nfrom scanner.staticscanner.info import InfoScanne"
  },
  {
    "path": "script/__init__.py",
    "chars": 36,
    "preview": "# coding: utf-8\n__author__ = 'deff'\n"
  },
  {
    "path": "script/exploit_api.json",
    "chars": 3128,
    "preview": "[\n  {\n    \"name\": \"webView绕过证书校验漏洞\",\n    \"summary\": \"webView绕过证书校验漏洞\",\n    \"desc\": \"webView绕过证书校验漏洞实现调用了handler.proceed("
  },
  {
    "path": "script/policy_api.json",
    "chars": 3966,
    "preview": "[\n  {\n    \"name\": \"获取imei\",\n    \"summary\": \"sdk获取imei信息,需谨慎处理,否则APP可能被要求整改\",\n    \"desc\": \"1.工信部要求2.android10及以上获取不到了3.im"
  },
  {
    "path": "script/policy_permission.json",
    "chars": 22987,
    "preview": "{\n  \"1\": {\n    \"name\": \"android.permission.READ_PHONE_STATE\",\n    \"summary\": \"读取手机状态和身份\",\n    \"desc\": \"工信部要求不可获取,其次是ando"
  },
  {
    "path": "tools/adb/linux/api/api-versions.xml",
    "chars": 2886331,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<api version=\"1\">\n\t<class name=\"android/Manifest\" since=\"1\">\n\t\t<extends name=\"jav"
  },
  {
    "path": "tools/adb/linux/source.properties",
    "chars": 39,
    "preview": "Pkg.UserSrc=false\nPkg.Revision=22.0.0\n\n"
  },
  {
    "path": "tools/adb/linux/systrace/AUTHORS",
    "chars": 292,
    "preview": "# Names should be added to this file with this pattern:\n#\n# For individuals:\n#   Name <email address>\n#\n# For organizati"
  },
  {
    "path": "tools/adb/linux/systrace/LICENSE",
    "chars": 1563,
    "preview": "// Copyright (c) 2010 The Chromium Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms"
  },
  {
    "path": "tools/adb/linux/systrace/NOTICE",
    "chars": 11738,
    "preview": "// Copyright (c) 2012 The Chromium Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms"
  },
  {
    "path": "tools/adb/linux/systrace/UPSTREAM_REVISION",
    "chars": 4,
    "preview": "775\n"
  },
  {
    "path": "tools/adb/linux/systrace/prefix.html",
    "chars": 977,
    "preview": "<!DOCTYPE HTML>\n<html>\n<head i18n-values=\"dir:textdirection;\">\n    <meta charset=\"utf-8\"/>\n    <title>Android System Tra"
  },
  {
    "path": "tools/adb/linux/systrace/script.js",
    "chars": 375517,
    "preview": "window.FLATTENED = {};\nwindow.FLATTENED_RAW_SCRIPTS = {};\nwindow.FLATTENED.base = !0;\nwindow.FLATTENED[\"tracing.color_sc"
  },
  {
    "path": "tools/adb/linux/systrace/style.css",
    "chars": 27541,
    "preview": "* WARNING:This file is generated by generate_standalone_timeline_view.py * * Do not edit directly. *\n\n/\n.analysis-link {"
  },
  {
    "path": "tools/adb/linux/systrace/suffix.html",
    "chars": 56,
    "preview": "\\n\";\n</script>\n<!-- END TRACE -->\n</\nbody >\n< / html >;\n"
  },
  {
    "path": "tools/adb/linux/systrace/systrace-legacy.py",
    "chars": 10866,
    "preview": "#!/usr/bin/env python\n\n# Copyright (c) 2011 The Chromium Authors. All rights reserved.\n# Use of this source code is gove"
  },
  {
    "path": "tools/adb/linux/systrace/systrace.py",
    "chars": 12071,
    "preview": "#!/usr/bin/env python\n\n# Copyright (c) 2011 The Chromium Authors. All rights reserved.\n# Use of this source code is gove"
  },
  {
    "path": "tools/adb/mac/api/api-versions.xml",
    "chars": 2886331,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<api version=\"1\">\n\t<class name=\"android/Manifest\" since=\"1\">\n\t\t<extends name=\"jav"
  },
  {
    "path": "tools/adb/mac/source.properties",
    "chars": 16515,
    "preview": "### Android Tool: Source of this archive.\n#Wed Jan 14 20:00:14 GMT+05:30 2015\nArchive.HostOs=macosx\nPkg.License=To get s"
  },
  {
    "path": "tools/adb/mac/systrace/AUTHORS",
    "chars": 292,
    "preview": "# Names should be added to this file with this pattern:\n#\n# For individuals:\n#   Name <email address>\n#\n# For organizati"
  },
  {
    "path": "tools/adb/mac/systrace/LICENSE",
    "chars": 1563,
    "preview": "// Copyright (c) 2010 The Chromium Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms"
  },
  {
    "path": "tools/adb/mac/systrace/NOTICE",
    "chars": 11738,
    "preview": "// Copyright (c) 2012 The Chromium Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms"
  },
  {
    "path": "tools/adb/mac/systrace/UPSTREAM_REVISION",
    "chars": 4,
    "preview": "775\n"
  },
  {
    "path": "tools/adb/mac/systrace/prefix.html",
    "chars": 977,
    "preview": "<!DOCTYPE HTML>\n<html>\n<head i18n-values=\"dir:textdirection;\">\n    <meta charset=\"utf-8\"/>\n    <title>Android System Tra"
  },
  {
    "path": "tools/adb/mac/systrace/script.js",
    "chars": 372287,
    "preview": "window.FLATTENED = {};\nwindow.FLATTENED_RAW_SCRIPTS = {};\nwindow.FLATTENED.base = !0;\nwindow.FLATTENED[\"tracing.color_sc"
  },
  {
    "path": "tools/adb/mac/systrace/style.css",
    "chars": 27541,
    "preview": "* WARNING:This file is generated by generate_standalone_timeline_view.py * * Do not edit directly. *\n\n/\n.analysis-link {"
  },
  {
    "path": "tools/adb/mac/systrace/suffix.html",
    "chars": 56,
    "preview": "\\n\";\n</script>\n<!-- END TRACE -->\n</\nbody >\n< / html >;\n"
  },
  {
    "path": "tools/adb/mac/systrace/systrace-legacy.py",
    "chars": 10866,
    "preview": "#!/usr/bin/env python\n\n# Copyright (c) 2011 The Chromium Authors. All rights reserved.\n# Use of this source code is gove"
  },
  {
    "path": "tools/adb/mac/systrace/systrace.py",
    "chars": 12071,
    "preview": "#!/usr/bin/env python\n\n# Copyright (c) 2011 The Chromium Authors. All rights reserved.\n# Use of this source code is gove"
  },
  {
    "path": "tools/adb/windows/api/api-versions.xml",
    "chars": 2886331,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<api version=\"1\">\n\t<class name=\"android/Manifest\" since=\"1\">\n\t\t<extends name=\"jav"
  },
  {
    "path": "tools/adb/windows/source.properties",
    "chars": 16510,
    "preview": "### Android Tool: Source of this archive.\n#Sat Nov 15 09:12:50 IST 2014\nArchive.HostOs=windows\nPkg.License=To get starte"
  },
  {
    "path": "tools/adb/windows/systrace/AUTHORS",
    "chars": 292,
    "preview": "# Names should be added to this file with this pattern:\n#\n# For individuals:\n#   Name <email address>\n#\n# For organizati"
  },
  {
    "path": "tools/adb/windows/systrace/LICENSE",
    "chars": 1563,
    "preview": "// Copyright (c) 2010 The Chromium Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms"
  },
  {
    "path": "tools/adb/windows/systrace/NOTICE",
    "chars": 11738,
    "preview": "// Copyright (c) 2012 The Chromium Authors. All rights reserved.\n//\n// Redistribution and use in source and binary forms"
  },
  {
    "path": "tools/adb/windows/systrace/UPSTREAM_REVISION",
    "chars": 4,
    "preview": "775\n"
  },
  {
    "path": "tools/adb/windows/systrace/prefix.html",
    "chars": 977,
    "preview": "<!DOCTYPE HTML>\n<html>\n<head i18n-values=\"dir:textdirection;\">\n    <meta charset=\"utf-8\"/>\n    <title>Android System Tra"
  },
  {
    "path": "tools/adb/windows/systrace/script.js",
    "chars": 372287,
    "preview": "window.FLATTENED = {};\nwindow.FLATTENED_RAW_SCRIPTS = {};\nwindow.FLATTENED.base = !0;\nwindow.FLATTENED[\"tracing.color_sc"
  },
  {
    "path": "tools/adb/windows/systrace/style.css",
    "chars": 27541,
    "preview": "* WARNING:This file is generated by generate_standalone_timeline_view.py * * Do not edit directly. *\n\n/\n.analysis-link {"
  },
  {
    "path": "tools/adb/windows/systrace/suffix.html",
    "chars": 56,
    "preview": "\\n\";\n</script>\n<!-- END TRACE -->\n</\nbody >\n< / html >;\n"
  },
  {
    "path": "tools/adb/windows/systrace/systrace-legacy.py",
    "chars": 10866,
    "preview": "#!/usr/bin/env python\n\n# Copyright (c) 2011 The Chromium Authors. All rights reserved.\n# Use of this source code is gove"
  },
  {
    "path": "tools/adb/windows/systrace/systrace.py",
    "chars": 12071,
    "preview": "#!/usr/bin/env python\n\n# Copyright (c) 2011 The Chromium Authors. All rights reserved.\n# Use of this source code is gove"
  },
  {
    "path": "update-info.txt",
    "chars": 97,
    "preview": "2019-12-30\nv1.0.1\n1.更新部分script规则\n2.更新支持输入文件为相对路径\n3.更新url展示,过滤其中相同url地址\n4.添加部分工具,如adb/dex2jar等工具\n\n"
  },
  {
    "path": "utils/__init__.py",
    "chars": 36,
    "preview": "# coding: utf-8\n__author__ = 'deff'\n"
  },
  {
    "path": "utils/fileutils.py",
    "chars": 1102,
    "preview": "# coding: utf-8\nimport shutil\n\n__author__ = 'deff'\n\nimport os\n\n\nclass FileUtils:\n    def __init__(self):\n        pass\n\n "
  },
  {
    "path": "utils/manager.py",
    "chars": 7483,
    "preview": "# coding: utf-8\nimport os\nimport shutil\nimport subprocess\nimport logging\nimport time\nimport zipfile\n\nfrom config import "
  },
  {
    "path": "utils/md5.py",
    "chars": 716,
    "preview": "# coding: utf-8\n__author__ = 'deff'\n'''\n md5相关函数\n'''\nimport hashlib\n\n\nclass Md5:\n    def __init__(self):\n        pass\n\n "
  },
  {
    "path": "utils/sdkinfo.py",
    "chars": 575,
    "preview": "# coding: utf-8\n__author__ = 'deff'\n\n\nclass SdkInfo:\n    def __init__(self):\n        self.sdk_name = \"\"\n        self.sdk"
  },
  {
    "path": "utils/tool.py",
    "chars": 507,
    "preview": "# coding: utf-8\n__author__ = 'deff'\nimport re\n\n\nclass Tools:\n    @staticmethod\n    def xml_assent(word):\n        symbola"
  },
  {
    "path": "utils/ziputils.py",
    "chars": 1009,
    "preview": "# coding: utf-8\n__author__ = 'deff'\nimport os\nimport os.path\nimport zipfile\n\nfrom utils.fileutils import FileUtils\n\n\ncla"
  }
]

// ... and 25 more files (download for full content)

About this extraction

This page contains the full source code of the wulio/Coeus GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 91 files (48.4 MB), approximately 2.5M tokens, and a symbol index with 1091 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!