本文详细介绍对移动应用进行安全加固的开放接口。
获取上传文件 token
请求 – GetFileTokenForUploadToMsaRequest
参数名称 |
类型 |
说明 |
appId |
String |
所属的 App。 |
workspaceId |
String |
所属的 Workspace。 |
tenantId |
String |
所属的租户。 |
onexFlag |
Boolean |
固定传值为 true 。 |
返回值 – GetFileTokenForUploadToMsaResponse
{
"resultContent":{
"content":{
"accessid":"LTAI7z7XPfKU8gs5",
"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 上传后的地址。 |
返回值 – 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 |
String |
上传任务的 ID,如果加固没有完成需要轮询检查。 |
data.enhanceTaskId |
String |
上传完成之后,会返回一个加固任务 ID,利用这个 ID 启动加固任务。 |
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 |
任务类型,有 shell 和 enhance_shell 两种,shell 是加壳,enhance_shell 搭配 Java2C 使用。 |
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 的 MD5。 |
data.afterSize |
Long |
加固后 APK 的大小。 |
data.id |
Long |
加固任务的 ID,后续用来轮询调用。 |
data.label |
String |
APK 的 label 字段。 |
data.progress |
Integer |
加固 APK 的进度,范围 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 的 MD5。 |
data.afterSize |
Long |
加固后 APK 的大小。 |
data.id |
Long |
加固任务的 ID,后续用来轮询调用。 |
data.label |
String |
APK 的 label 字段。 |
data.progress |
Integer |
加固 APK 的进度,范围 0 – 100。 |
data.status |
Integer |
加固任务的状态: 0 未开始,1 已提交任务,2 加固中,3 加固成功,4 加固失败。 |
data.taskType |
String |
加固任务类型。 |
data.enhancedClasses |
String |
Java2C 选择的类。 |
查询加固后的产物下载链接
请求 – GetUserAppDonwloadUrlInMsaRequest
参数名称 |
类型 |
说明 |
appId |
String |
所属的 App。 |
workspaceId |
String |
所属的 workspace。 |
tenantId |
String |
所属的租户。 |
taskId |
String |
加固任务 ID。 |
返回值 – GetUserAppDonwloadUrlInMsaResponse
{
"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 下载链接。 |
data.filename |
String |
APK 文件名。 |
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 |
查询是否成功。 |