本文详细介绍对移动应用进行安全加固的开放接口。
获取上传文件 token
请求 - GetFileTokenForUploadToMsaRequest
参数名称 | 类型 | 说明 |
appId | String | 所属的 App。 |
workspaceId | String | 所属的 Workspace。 |
tenantId | String | 所属的租户。 |
onexFlag | Boolean | 固定传值为 |
返回值 - 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 是 |
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 是 |
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 是 |
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 | 任务类型,有 |
useAShield | boolean | true 为启动新加固工具链加固任务。不传或者传 false 为启动老加固工具链加固任务。 |
classes | String | 设置需要 Java2C 加固的核心类,应当只添加关键核心类,使用英文逗号(,)隔开,如 |
totalSwitch | boolean | 总开关,设置为 |
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 | 查询是否成功。 |