接口说明

本文详细介绍对移动应用进行安全加固的开放接口。

获取上传文件 token

请求 - GetFileTokenForUploadToMsaRequest

参数名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 Workspace。

tenantId

String

所属的租户。

onexFlag

Boolean

固定传值为 true

返回值 - GetFileTokenForUploadToMsaResponse

{
    "resultContent":{
        "content":{
            "accessid":"LTAI7z7XPfKU****",
            "dir":"mds/tempFileForOnex/ONEXE9B092D/test/PUQYHL/8b574cb7-3596-403f-a0e9-208660fc2081/",
            "expire":"1584327372",
            "host":"https://mcube-test.oss-cn-hangzhou.aliyuncs.com",
            "policy":"QwM2YtYTBlOS0yMDg2NjBmYzIwODEvIl1dfQ==",
            "signature":"kisfP5YhbPtmES8+w="
        },
        "resultMsg":"",
        "success":true
    },
    "requestId":"8BAA3288-662E-422C-9960-2EEBFC08369F",
    "resultCode":"OK"
}

返回值说明

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

ResultContent.Content

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。

通知 MSA 开始处理已经上传到 OSS 的应用

请求 - UploadUserAppToMsaRequest

参数名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 Workspace。

tenantId

String

所属的租户。

fileUrl

String

APK/ABB 上传后的地址。

返回值 - UploadUserAppToMsaResponse

{
    "resultContent":{
        "data":{ 
            "id": 12345,
            "enhanceTaskId": 12345,
            "progress": 10,
            "status": 0
        },
        "resultMsg":"",
        "success":true
    },
    "requestId":"637D5BE0-0111-4C53-BCEE-473CFFA0DBAD",
    "resultCode":"OK"
}

返回值说明

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

resultContent

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

data.id

Integer

上传任务的 ID,如果加固没有完成需要轮询检查。

data.enhanceTaskId

Integer

上传完成之后,会返回一个加固任务 ID,利用这个 ID 启动加固任务。

data.progress

Integer

加固的进度,范围 0 - 100。

data.status

Integer

上传状态,-1 为失败,0 为处理中,1 为上传成功。

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。

查询处理上传应用状态

请求 - GetUserAppUploadProcessInMsaRequest

参数名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 Workspace。

tenantId

String

所属的租户。

id

Long

上传任务 ID。

返回值 - GetUserAppUploadProcessInMsaResponse

{
    "resultContent":{
        "data":{ 
            "id": 12345,
            "enhanceTaskId": 12345,
            "progress": 10,
            "status": 0
        },
        "resultMsg":"",
        "success":true
    },
    "requestId":"637D5BE0-0111-4C53-BCEE-473CFFA0DBAD",
    "resultCode":"OK"
}

返回值说明

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

resultContent

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

data.id

String

上传任务的 ID,如果加固没有完成需要轮询检查。

data.enhanceTaskId

String

上传完成之后,会返回一个加固任务 ID,利用这个 ID 启动加固任务。

data.status

Integer

上传状态,-1 为失败,0 为处理中,1 为上传成功。

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。

启动加固任务

请求 - StartUserAppAsyncEnhanceInMsaRequest

名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 Workspace。

tenantId

String

所属的租户。

id

Long

加固任务 ID。

taskType

String

任务类型,有 shellenhance_shell 两种,shell 是加壳,enhance_shell 搭配 Java2C 使用。

useAShield

boolean

true 为启动新加固工具链加固任务。不传或者传 false 为启动老加固工具链加固任务。

classes

String

设置需要 Java2C 加固的核心类,应当只添加关键核心类,使用英文逗号(,)隔开,如 com.a.a,com.b.b,如果设置了这个值,那么 taskType 需要为 enhance_shell,个别类不适配可能会导致加固失败。

totalSwitch

boolean

总开关,设置为 true, 下面的开关才生效。

javaHook

Integer

防 Java Hook 能力,0 为 Killself,1 为 Warning。

memoryDump

Integer

防 memory dump 能力,0 为 Killself,1 为 Warning。

emulatorEnvironment

Integer

防模拟器能力,0 为 Killself,1 为 Warning。

nativeHook

Integer

防 Native Hook 能力,0 为 Killself,1 为 Warning。

dalvikDebugger

Integer

防 Java 调试能力,0 为 Killself,1 为 Warning。

nativeDebugger

Integer

防 Native 调试和 Root 能力,0 为 Killself,1 为 Warning。

返回值 - StartUserAppAsyncEnhanceInMsaResponse

{
    "resultContent":{
        "data":{
            "afterMd5": "aaaaaaaa",
            "afterSize": 1000,
            "appCode": "ONEXxxxx",
            "appPackage": "com.example.app",
            "beforeMd5": "bbbbbb",
            "id": 1,
            "label": "支付宝",
            "progress": 0,
            "status": 2,
            "taskType": "shell",
            "versionCode": 1,
            "versionName": "1.0.0",
            "enhancedClasses": ["aaa", "bbb"]
        },
        "resultMsg":"",
        "success":true
    },
    "requestId":"F9C681F2-6377-488D-865B-1144E0CE69D2",
    "resultCode":"OK"
}

返回值说明

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

resultContent

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。

data.afterMd5

String

加固后 APK/ABB 的 MD5。

data.afterSize

Long

加固后 APK/ABB 的大小。

data.id

Long

加固任务的 ID,后续用来轮询调用。

data.label

String

APK/ABB 的 label 字段。

data.progress

Integer

加固的进度,范围 0 - 100。

data.status

Integer

加固任务的状态: 0 未开始,1 已提交任务,2 加固中,3 加固成功,4 加固失败。

data.taskType

String

加固任务类型。

data.enhancedClasses

String[]

Java2C 选择的类。

查询加固任务进度

请求 - GetUserAppEnhanceProcessInMsaRequest

名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 workspace。

tenantId

String

所属的租户。

id

Long

加固任务 ID。

返回值 - GetUserAppEnhanceProcessInMsaResponse

{
    "resultContent":{
        "data":{
            "afterMd5": "aaaaaaaa",
            "afterSize": 1000,
            "appCode": "ONEXxxxx",
            "appPackage": "com.example.app",
            "beforeMd5": "bbbbbb",
            "id": 1,
            "label": "支付宝",
            "progress": 0,
            "status": 2,
            "taskType": "shell",
            "versionCode": 1,
            "versionName": "1.0.0",
            "enhancedClasses": ["aaa", "bbb"]
        },
        "resultMsg":"",
        "success":true
    },
    "requestId":"F9C681F2-6377-488D-865B-1144E0CE69D2",
    "resultCode":"OK"
}

返回值说明

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

resultContent

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。

data.afterMd5

String

加固后 APK/ABB 的 MD5。

data.afterSize

Long

加固后 APK/ABB 的大小。

data.id

Long

加固任务的 ID,后续用来轮询调用。

data.label

String

APK/ABB 的 label 字段。

data.progress

Integer

加固的进度,范围 0 - 100。

data.status

Integer

加固任务的状态: 0 未开始,1 已提交任务,2 加固中,3 加固成功,4 加固失败。

data.taskType

String

加固任务类型。

data.enhancedClasses

String[]

Java2C 选择的类。

查询加固后的产物下载链接

请求 - GetUserAppDownloadUrlInMsaRequest

参数名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 workspace。

tenantId

String

所属的租户。

taskId

String

加固任务 ID。

返回值 - GetUserAppDownloadUrlInMsaResponse

{
    "resultContent":{
        "data": { "url": "https://xxxx"},
        "resultMsg":"",
        "success":false
    },
    "requestId":"8F76783A-8070-4182-895D-14E5D66F8BA3",
    "resultCode":"OK"
}

返回值说明

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

checkRsaKeyResult

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

data.url

String

APK/ABB 下载链接。

data.filename

String

APK/ABB 文件名。

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。

查询加固日志

请求 - GetLogUrlInMsaRequest

参数名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 Workspace。

tenantId

String

所属的租户。

taskId

String

加固任务 ID。

返回值 - GetLogUrlInMsaResponse

{
    "resultContent":{
        "data": { "url": "https://xxxx"},
        "resultMsg":"",
        "success":false
    },
    "requestId":"8F76783A-8070-4182-895D-14E5D66F8BA3",
    "resultCode":"OK"
}

返回值说明

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

resultContent

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

data

String

log 下载链接。

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。