Пример #1
0
def get_container_name(db_path, pk):
    sql = "SELECT ZCONTAINERNAME FROM ZCONTAINER WHERE Z_PK =?;"
    container = SqliteHandler(db_path=db_path).execute_select_one(
        sql, params=(pk, ))
    if container:
        return container['ZCONTAINERNAME']
    else:
        return None
Пример #2
0
def insert_apis(table_name, datas):
    """
    Mysql
    https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-executemany.html
    如果是 [(),(),()] 则用%s
    如果是[{},{},{}] 就用 :name取值
    """
    sql = "insert into " + table_name + " (api_name,class_name,type,header_file,source_sdk,source_framework) values (:api_name,:class_name,:type,:header_file,:source_sdk,:source_framework)"
    return SqliteHandler().insert_many(sql, datas)
Пример #3
0
def _get_white_lists_results():
    sql = "select api_name from %s group by api_name, class_name" % (
        db_names["SET_G"])
    params = ()
    white_lists_result = SqliteHandler().execute_select(sql, params)
    result_set = set()
    if white_lists_result and len(white_lists_result) > 0:
        for api_name in white_lists_result:
            result_set.add(api_name['api_name'])
    return _get_sql_in_strings(result_set)
Пример #4
0
def get_private_api_list(framework=None):
    framework_str = _get_sql_in_strings(framework)  # in frameworks
    private_db_name = db_names["SET_D"]
    white_list_containers = _get_white_lists_results()
    # 有frame过滤条件s
    if framework_str:
        sql = "select * from %s group by api_name, class_name having source_framework in " % (
            private_db_name
        ) + framework_str + " and api_name not in " + white_list_containers + ";"
        params = ()
    else:
        sql = "select * from %s group by api_name, class_name having api_name not in " % (
            private_db_name) + white_list_containers + ";"
        params = ()
    private_apis = SqliteHandler().execute_select(sql, params)
    print(sql)
    return private_apis
Пример #5
0
def get_dsidx_apis(db_path):
    """
    ZTOKEN表中查询出 ZTOKENTYPE  func,instm,clm,intfm,intfcm   (1,4,2,6,22)  满足我们要的几个类型
    ZTOKENMETAINFORMATION 连表查询对应的信息
    api_name     ZTOKENNAME
    class_name   ZCONTAINER -- > ZCONTAINERNAME
    type         ZTOKENTYPE
    header_file  ZHEADER --> ZHEADERPATH
    source_sdk   12.1
    source_framework  ZHEADER --> ZFRAMEWORKNAME
    """
    sql = "SELECT T.Z_PK," \
          " T.ZTOKENNAME," \
          " T.ZTOKENTYPE," \
          " T.ZCONTAINER, " \
          "F.ZDECLAREDIN FROM ZTOKEN as T" \
          " INNER JOIN ZTOKENMETAINFORMATION as F ON T.Z_PK=F.ZTOKEN" \
          " WHERE ZTOKENTYPE IN (1,2,4,6,22)"
    return SqliteHandler(db_path=db_path).execute_select(sql, ())
Пример #6
0
def get_framework_and_header_name(db_path, pk):
    sql = "SELECT ZFRAMEWORKNAME, ZHEADERPATH FROM ZHEADER WHERE Z_PK = ?;"
    return SqliteHandler(db_path=db_path).execute_select_one(sql,
                                                             params=(pk, ))
Пример #7
0
def delete_api_by_sdk_version(table_name, version):
    sql = "delete from " + table_name + " where source_sdk = ?"
    print('删除早期版本apis')
    return SqliteHandler().execute_update(sql, params=(version, ))
Пример #8
0
def get_finale_private_apis_count():
    sql = "SELECT * FROM %s;" % db_names['SET_D']
    para = ()
    return SqliteHandler().execute_select(sql, params=para)
Пример #9
0
def api_is_exist_in_table(table_name, api_obj):
    sql = "SELECT * FROM %s WHERE api_name = ? and class_name = ? and source_sdk = ?;" % table_name
    parameters = (api_obj['api_name'], api_obj['class_name'],
                  api_obj['source_sdk'])
    return SqliteHandler().execute_select_one(sql, params=parameters)
Пример #10
0
def get_private_framework_dump_apis(version):
    sql = "SELECT * FROM %s WHERE source_sdk = ?;" % db_names['SET_E']
    para = (version, )
    return SqliteHandler().execute_select(sql, params=para)