有奖捉虫:云通信与企业服务文档专题,速来> HOT

AndroidAppInfo

渠道合作Android加固App信息

被如下接口引用:CreateEncryptInstance。

名称 类型 必选 描述
AppMd5 String app文件的md5算法值,需要正确传递,在线加固必输。
例如linux环境下执行算法命令md5sum :
#md5sum test.apk
d40cc11e4bddd643ecdf29cde729a12b
示例值:d40cc11e4bddd643ecdf29cde729a12b
AppSize Integer app的大小,非必输。
AppUrl String app下载链接,在线加固必输。
AppName String app名称,非必输
AppPkgName String app的包名,本次操作的包名。
当Android是按年收费、免费试用加固时,在线加固和输出工具要求该字段必输,且与AndroidPlan.AppPkgName值相等。
AppFileName String app的文件名,非必输。
AppVersion String app版本号,非必输。
AppType String Android app的文件类型,本次加固操作的应用类型 。
Android在线加固和输出工具加固必输,其值需等于“apk”或“aab”,且与AndroidAppInfo.AppType值相等。

AndroidPlan

渠道合作Android加固策略信息

被如下接口引用:CreateEncryptInstance, DescribeEncryptInstances, DescribeEncryptPlan。

名称 类型 必选 描述
PlanId Integer 非必输字段,PlanId 是指本次加固使用的配置策略Id,可通过载入上次配置接口获取。其值非0时,代表引用对应的策略。
示例值:1
AppPkgName String 本次操作的包名。
当收费模式是android按年收费和android免费试用的在线加固和输出工具加固时,要求该字段必输,且与AndroidAppInfo.AppPkgName值相等。
AppType String android app的文件类型,本次加固操作的应用类型 。
android在线加固和输出工具加固必输,其值需等于“apk”或“aab”,且与AndroidAppInfo.AppType值相等。

示例值:“apk”
EncryptParam String android加固必输字段。
加固策略,json格式字符串。
字段说明(0-关闭,1-开启):
"enable"=1 #DEX整体加固;
"antiprotect"=1 #反调试;
"antirepack"=1 #防重打包、防篡改;
"dexsig"=1 #签名校验;
"antimonitor"=1 #防模拟器运行保护;
"ptrace"=1 #防动态注入、动态调试;
"so"."enable" = 1 #文件加密;
"vmp"."enable" = 1 #VMP虚拟化保护;
"respro"."assets"."enable" = 1 #assets资源文件加密
"respro"."res"."enable" = 1 #res资源文件加密

so文件加密:
支持5种架构:
apk 格式: /lib/armeabi/libxxx.so,/lib/arm64-v8a/libxxx.so,/lib/armeabi-v7a/libxxx.so,/lib/x86/libxxx.so,/lib/x86_64/libxxx.so
aab格式: /base/lib/armeabi/libxxx.so,/base/lib/arm64-v8a/libxxx.so,/base/lib/armeabi-v7a/libxxx.so,/base/lib/x86/libxxx.so,/base/lib/x86_64/libxxx.so
请列举 SO 库在 apk 文件解压后的完整有效路径,如:/lib/armeabi/libxxx.so;
需要加固的 SO 库需确认为自研的 SO 库,不要加固第三方 SO 库,否则会增加 crash 风险

res资源文件加密注意事项:
请指定需要加密的文件全路径,如:res/layout/1.xml;
res资源文件加密不能加密APP图标
res目录文件,不能加密以下后缀规则的文件".wav", ".mp2", ".mp3", ".ogg", ".aac", ".mpg",".mpeg", ".mid", ".midi", ".smf", ".jet", ".rtttl", ".imy", ".xmf", ".mp4", ".m4a", ".m4v", ".3gp",".3gpp", ".3g2", ".3gpp2", ".amr", ".awb", ".wma", ".wmv"

assets资源文件加密注意事项:
请指定需要加密的文件全路径,如:assets/main.js;可以完整路径,也可以相对路径。
如果有通配符需要完整路径 ":all"或者"*"代表所有文件
assets资源文件加密不能加密APP图标
assets目录文件,不能加密以下后缀规则的文件".wav", ".mp2", ".mp3", ".ogg", ".aac", ".mpg",".mpeg", ".mid", ".midi", ".smf", ".jet", ".rtttl", ".imy", ".xmf", ".mp4", ".m4a", ".m4v", ".3gp",".3gpp", ".3g2", ".3gpp2", ".amr", ".awb", ".wma", ".wmv"


apk[dex+so+vmp+res+assets]加固参数示例:
‘{
"dex": {
"enable": 1,
"antiprotect": 1,
"antirepack": 1,
"dexsig": 1,
"antimonitor": 1,
"ptrace": 1
},
"so": {
"enable": 1,
"ver": "1.3.3",
"file": [
"/lib/armeabi/libtest.so"
]
},
"vmp": {
"enable": 1,
"ndkpath": "/xxx/android-ndk-r10e",
"profile": "/xxx/vmpprofile.txt",
"mapping": "/xxx/mapping.txt"
},
"respro": {
"assets": {
"enable": 1,
"file": [
"assets/1.js",
"assets/2.jpg"
]
},
"res": {
"enable": 1,
"file": [
"res/layout/1.xml",
"res/layout/2.xml"
]
}
}
}’

aab加固方案一
[dex+res+assets]加固json字符串:
‘{
"dex": {
"enable": 1,
"antiprotect": 1,
"antimonitor": 1
},
"respro": {
"assets": {
"enable": 1,
"file": [
"assets/1.js",
"assets/2.jpg"
]
},
"res": {
"enable": 1,
"file": [
"res/layout/1.xml",
"res/layout/2.xml"
]
}
}
}’

aab加固方案二
单独vmp加固:
‘{
"vmp": {
"enable": 1,
"ndkpath": "/xxx/android-ndk-r10e",
"profile": "/xxx/vmpprofile.txt",
"mapping": "/xxx/mapping.txt",
"antiprotect": 1,
"antimonitor": 1
}
}’
示例值:‘{ "dex": { "enable": 1, "antiprotect": 1, "antirepack": 1, "dexsig": 1, "antimonitor": 1, "ptrace": 1 }, "so": { "enable": 1, "ver": "1.3.3", "file": [ "/lib/armeabi/libtest.so" ] }, "vmp": { "enable": 1, "ndkpath": "/xxx/android-ndk-r10e", "profile": "/xxx/vmpprofile.txt", "mapping": "/xxx/mapping.txt" }, "respro": { "assets": { "enable": 1, "file": [ "assets/1.js", "assets/2.jpg" ] }, "res": { "enable": 1, "file": [ "res/layout/1.xml", "res/layout/2.xml" ] } } }’

AndroidResult

Android加固结果

被如下接口引用:DescribeEncryptInstances。

名称 类型 描述
ResultId String 结果Id,用于查询加固结果
OrderId String 与当前任务关联的订单id
ResourceId String 与当前任务关联的资源Id
OpUin Integer 本次任务发起者
AppType String 应用类型:android-apk; android-aab;
AppPkgName String 应用包名
BindAppPkgName String 后台资源绑定的包名
EncryptState Integer 加固结果
EncryptStateDesc String 加固结果描述
EncryptErrCode Integer 加固失败错误码
EncryptErrDesc String 加固失败原因
EncryptErrRef String 加固失败解决方案
CreatTime String 任务创建时间
StartTime String 任务开始处理时间
EndTime String 任务处理结束时间
CostTime Integer 加固耗时(秒单位)
AppUrl String 在线加固-android应用原包下载链接
AppMd5 String 在线加固-android应用文件MD5算法值
AppName String 在线加固-android应用应用名称
AppVersion String 在线加固-android应用版本;
AppSize Integer 在线加固-android应用大小
OnlineToolVersion String 在线加固-android加固-腾讯云应用加固工具版本
EncryptAppMd5 String 在线加固-android加固,加固成功后文件md5算法值
EncryptAppSize Integer 在线加固-android加固,加固成功后应用大小
EncryptPkgUrl String 在线加固-android加固,加固包下载链接。
OutputToolVersion String 输出工具-android加固-腾讯云输出工具版本
OutputToolSize Integer 输出工具-android加固-工具大小
ToolOutputTime String 输出工具-android加固-工具输出时间
ToolExpireTime String 输出工具-android加固-工具到期时间
OutputToolUrl String 输出工具-android加固-输出工具下载链接
AndroidPlan AndroidPlan 本次android加固策略信息

AppDetailInfo

app的详细基础信息

被如下接口引用:DescribeShieldResult。

名称 类型 描述
AppName String app的名称
AppPkgName String app的包名
AppVersion String app的版本号
AppSize Integer app的大小
AppMd5 String app的md5
AppIconUrl String app的图标url
FileName String app的文件名称

AppInfo

提交的app基本信息

被如下接口引用:CreateShieldInstance。

名称 类型 必选 描述
AppUrl String app的url,必须保证不用权限校验就可以下载
AppMd5 String app的md5,需要正确传递
AppSize Integer app的大小
FileName String app的文件名
AppPkgName String app的包名,需要正确的传递此字段
AppVersion String app的版本号
AppIconUrl String app的图标url
AppName String app的名称

AppSetInfo

加固后app的信息,包含基本信息和加固信息

被如下接口引用:DescribeShieldInstances。

名称 类型 描述
ItemId String 任务唯一标识
AppName String app的名称
AppPkgName String app的包名
AppVersion String app的版本号
AppMd5 String app的md5
AppSize Integer app的大小
ServiceEdition String 加固服务版本
ShieldCode Integer 加固结果返回码
AppUrl String 加固后的APP下载地址
TaskStatus Integer 任务状态: 1-已完成,2-处理中,3-处理出错,4-处理超时
ClientIp String 请求的客户端ip
TaskTime Integer 提交加固时间
AppIconUrl String app的图标url
ShieldMd5 String 加固后app的md5
ShieldSize Integer 加固后app的大小

AppletInfo

小程序加固信息

被如下接口引用:CreateEncryptInstance, DescribeEncryptInstances。

名称 类型 必选 描述
AppletJsUrl String 客户JS包
AppletLevel Integer 小程序加固等级配置
1 - 开启代码混淆、代码压缩、代码反调试保护。 2 - 开启字符串编码和代码变换,代码膨胀,随机插入冗余代码,开启代码控制流平坦化,保证业务逻辑正常前提下,扁平化代码逻辑分支,破坏代码简单的线性结构。 3 - 开启代码加密,对字符串、函数、变量、属性、类、数组等结构进行加密保护,更多得代码控制流平坦化,扁平化逻辑分支。
示例值:1
Name String 本次加固输出产物名称,如”test.zip“,非空必须是 ”.zip“结尾
示例值:test.zip

AppletPlan

小程序加固配置

被如下接口引用:DescribeEncryptPlan。

名称 类型 必选 描述
PlanId Integer 策略Id
示例值:1
AppletLevel Integer 1 - 开启代码混淆、代码压缩、代码反调试保护。
2 - 开启字符串编码和代码变换,代码膨胀,随机插入冗余代码,开启代码控制流平坦化,保证业务逻辑正常前提下,扁平化代码逻辑分支,破坏代码简单的线性结构。
3 - 开启代码加密,对字符串、函数、变量、属性、类、数组等结构进行加密保护,更多得代码控制流平坦化,扁平化逻辑分支。
示例值:1

AppletResult

渠道合作加固小程序加固结果

被如下接口引用:DescribeEncryptInstances。

名称 类型 描述
ResultId String 加固任务结果id
ResourceId String 资源id
OrderId String 订单id
OpUin Integer 操作账号
EncryptState Integer 加固结果
EncryptStateDesc String 加固结果描述
EncryptErrCode Integer 失败错误码
EncryptErrDesc String 失败原因
EncryptErrRef String 解决方案
CreatTime String 任务创建时间
StartTime String 任务开始处理时间
EndTime String 任务处理结束时间
CostTime Integer 加固耗时(秒单位)
EncryptPkgUrl String 在线加固成功下载包
AppletInfo AppletInfo 本次加固配置

BindInfo

用户绑定app的基本信息

被如下接口引用:DescribeResourceInstances, DescribeShieldPlanInstance。

名称 类型 描述
AppIconUrl String app的icon的url
AppName String app的名称
AppPkgName String app的包名

EncryptResults

渠道合作加固结果信息

被如下接口引用:DescribeEncryptInstances。

名称 类型 描述
PlatformType Integer 平台类型枚举值 1-android加固 2-ios源码混淆 3-sdk加固 4-applet小程序加固
示例值:1
PlatformDesc String 平台类型描述 1-android加固 2-ios源码混淆 3-sdk加固 4-applet小程序加固
OrderType Integer 订单采购类型枚举值, 1-免费试用 2-按年收费 3-按次收费
OrderTypeDesc String 订单采购类型 描述:1-免费试用 2-按年收费 3-按次收费
EncryptOpType Integer 枚举值:1-在线加固 或 2-输出工具加固
EncryptOpTypeDesc String 描述:1-在线加固 或 2-输出工具加固
ResourceId String 与当前任务关联的资源Id
OrderId String 与当前任务关联的订单Id
AndroidResult AndroidResult 对应PlatformType平台类型值 1-android加固结果
注意:此字段可能返回 null,表示取不到有效值。
IOSResult IOSResult 对应PlatformType平台类型值 2-ios源码混淆加固结果
注意:此字段可能返回 null,表示取不到有效值。
SDKResult SDKResult 对应PlatformType平台类型值 3-sdk加固结果
注意:此字段可能返回 null,表示取不到有效值。
AppletResult AppletResult 对应PlatformType平台类型值 4-applet小程序加固结果
注意:此字段可能返回 null,表示取不到有效值。

Filter

筛选数据结构

被如下接口引用:DescribeResourceInstances, DescribeShieldInstances。

名称 类型 必选 描述
Name String 需要过滤的字段
Value String 需要过滤字段的值

IOSInfo

iOS加固信息

InfoPListUrl  string <dx-inline-code-holder></dx-inline-code-holder>  //info.plist的url,必须保证不用权限校验就可以下载
InfoPListSize int64  <dx-inline-code-holder></dx-inline-code-holder> //info.plist文件的大小
InfoPListMd5  string <dx-inline-code-holder></dx-inline-code-holder>  //info.plist文件的md5
BuildType     string <dx-inline-code-holder></dx-inline-code-holder>     //release: 需要INFO-PLIST文件,会生成工具部署安装包,并带有license文件,绑定机器;nobind不需要INFO-PLIST文件,不绑定机器

被如下接口引用:CreateEncryptInstance。

名称 类型 必选 描述
InfoPListUrl String info.plist的url,必须保证不用权限校验就可以下载
示例值:http://xxxxxx
InfoPListSize Integer info.plist文件的大小
InfoPListMd5 String info.plist文件的md5
BuildType String release: 需要INFO-PLIST文件,会生成工具部署安装包,并带有license文件,绑定机器;nobind不需要INFO-PLIST文件,不绑定机器

IOSPlan

渠道合作IOS源码混淆配置

被如下接口引用:DescribeEncryptPlan。

名称 类型 必选 描述
PlanId Integer 策略id
示例值:1

IOSResult

渠道合作ios源码混淆加固结果

被如下接口引用:DescribeEncryptInstances。

名称 类型 描述
ResultId String 加固任务结果Id
注意:此字段可能返回 null,表示取不到有效值。
OpUin Integer 用户uid
注意:此字段可能返回 null,表示取不到有效值。
示例值:uid
EncryptType String 加固类型,这里为ios
注意:此字段可能返回 null,表示取不到有效值。
示例值:ios
ResourceId String 资源id
注意:此字段可能返回 null,表示取不到有效值。
EncryptState Integer 加固状态
注意:此字段可能返回 null,表示取不到有效值。
示例值:0等待,1成功,2任务中,3失败,4重试中
EncryptErrno Integer 业务错误码
注意:此字段可能返回 null,表示取不到有效值。
EncryptErrDesc String 业务错误信息
注意:此字段可能返回 null,表示取不到有效值。
CreatTime String 创建时间
注意:此字段可能返回 null,表示取不到有效值。
StartTime String 开始时间
注意:此字段可能返回 null,表示取不到有效值。
EndTime String 结束时间
注意:此字段可能返回 null,表示取不到有效值。
CostTime Integer 消耗时间
注意:此字段可能返回 null,表示取不到有效值。
EncryptPkgUrl String 加固(混淆)包结果url
注意:此字段可能返回 null,表示取不到有效值。

OptPluginListItem

APK检测服务:非广告插件结果列表(SDK、风险插件等)

被如下接口引用:DescribeApkDetectionResult。

名称 类型 描述
PluginType String 非广告类型
示例值:""
PluginName String 非广告插件名称
示例值:""
PluginDesc String 非广告插件描述
示例值:""

Orders

渠道合作加固订单资源信息

被如下接口引用:DescribeOrderInstances。

名称 类型 描述
OrderId String 订单号
PlatformType Integer 平台类型整型值
PlatformTypeDesc String 平台类型描述: 1.android加固 2.ios源码混淆 3.sdk加固 4.applet小程序加固
OrderType Integer 订单采购类型整型值
OrderTypeDesc String 订单采购类型描述: 1-免费试用 2-按年收费 3-按次收费
AppPkgName String android包年收费加固的包名
ResourceId String 资源号
ResourceStatus Integer 资源状态整型值
ResourceStatusDesc String 资源状态描述
0-未生效、1-生效中、2-已失效。
TestTimes Integer 订单类型为免费试用时的免费加固次数。
ValidTime String 资源生效时间
ExpireTime String 资源过期时间
CreateTime String 资源创建时间
Approver String 订单审批人
ApprovalStatus Integer 订单审批状态整型值
ApprovalStatusDesc String 订单审批状态整型值描述:0-未审批、1-审批通过、2-驳回。
ApprovalTime String 订单审批时间
TimesTaskTotalCount Integer 按次收费加固资源,其关联的总任务数
TimesTaskSuccessCount Integer 按次收费加固资源,其关联的任务成功数
TimesTaskFailCount Integer 按次收费加固资源,其关联的任务失败数

PlanDetailInfo

加固策略具体信息

被如下接口引用:DescribeShieldPlanInstance。

名称 类型 描述
IsDefault Integer 默认策略,1为默认,0为非默认
PlanId Integer 策略id
PlanName String 策略名称
PlanInfo PlanInfo 策略信息

PlanInfo

加固策略信息

被如下接口引用:CreateShieldPlanInstance, DescribeShieldPlanInstance。

名称 类型 描述
ApkSizeOpt Integer apk大小优化,0关闭,1开启
Dex Integer Dex加固,0关闭,1开启
So Integer So加固,0关闭,1开启
Bugly Integer 数据收集,0关闭,1开启
AntiRepack Integer 防止重打包,0关闭,1开启
Db Integer 内存保护,0关闭,1开启
SoInfo SoInfo So文件信息
AntiVMP Integer vmp,0关闭,1开启
SoType Array of String 保护so的强度,
AntiLogLeak Integer 防日志泄漏,0关闭,1开启
AntiAssets Integer 资源防篡改,0关闭,1开启
AntiScreenshot Integer 防止截屏,0关闭,1开启
AntiSSL Integer SSL证书防窃取,0关闭,1开启
SetFile String Dex分离,0关闭,1开启
注意:此字段可能返回 null,表示取不到有效值。
FileSign String Dex签名校验,0关闭,1开启
注意:此字段可能返回 null,表示取不到有效值。
AntiRoot String root检测,0关闭,1开启
注意:此字段可能返回 null,表示取不到有效值。

PluginListItem

APK检测服务:广告插件结果结构体

被如下接口引用:DescribeApkDetectionResult。

名称 类型 描述
PluginType String 数字类型,分别为 1-通知栏广告,2-积分墙广告,3-banner广告,4- 悬浮窗图标广告,5-精品推荐列表广告, 6-插播广告
示例值:"1"
PluginName String 广告插件名称
示例值:""
PluginDesc String 广告插件描述
示例值:""

ResourceInfo

拉取某个用户的所有资源信息

被如下接口引用:DescribeResourceInstances。

名称 类型 描述
ResourceId String 用户购买的资源id,全局唯一
Pid Integer 资源的pid,MTP加固-12767,应用加固-12750 MTP反作弊-12766 源代码混淆-12736
CreateTime Integer 购买时间戳
ExpireTime Integer 到期时间戳
IsBind Integer 0-未绑定,1-已绑定
BindInfo BindInfo 用户绑定app的基本信息
ResourceName String 资源名称,如应用加固,漏洞扫描

ResourceServiceInfo

资源服务信息

被如下接口引用:DescribeShieldPlanInstance。

名称 类型 描述
CreateTime Integer 创建时间戳
ExpireTime Integer 到期时间戳
ResourceName String 资源名称,如应用加固,源码混淆

ResultListItem

APK检测服务参数返回具体信息

被如下接口引用:DescribeApkDetectionResult。

名称 类型 描述
Banner String banner广告软件标记,分别为-1-不确定,0-否,1-是
示例值:"1"
BoutiqueRecommand String 精品推荐列表广告标记,分别为-1-不确定,0-否,1-是
示例值:""
FloatWindows String 悬浮窗图标广告标记,分别为-1-不确定,0-否,1-是
示例值:""
IntegralWall String 积分墙广告软件标记,分别为 -1 -不确定,0-否,1-是
示例值:""
Md5 String 安装包的md5
示例值:""
NotifyBar String 通知栏广告软件标记,分别为-1-不确定,0-否,1-是
示例值:""
Official String 1表示官方,0表示非官方
示例值:"1"
PluginList Array of PluginListItem 广告插件结果列表
OptPluginList Array of OptPluginListItem 非广告插件结果列表(SDK、风险插件等)
SafeType String 数字类型,分别为0-未知, 1-安全软件,2-风险软件,3-病毒软件
示例值:"1"
Sid String Session id,合作方可以用来区分回调数据,需要唯一。
示例值:""
SoftName String 安装包名称
示例值:""
Spot String 插播广告软件标记,取值:-1 不确定,0否, 1 是
示例值:"-1"
VirusName String 病毒名称,utf8编码
示例值:""
VirusDesc String 病毒描述,utf8编码
示例值:""
RepackageStatus String 二次打包状态:0-表示默认;1-表示二次
示例值:""
Errno String 应用错误码:0、1-表示正常;

2表示System Error(engine analysis error).

3表示App analysis error, please confirm it.

4表示App have not cert, please confirm it.

5表示App size is zero, please confirm it.

6表示App have not package name, please confirm it.

7表示App build time is empty, please confirm it.

8表示App have not valid cert, please confirm it.

99表示Other error.

1000表示App downloadlink download fail, please confirm it.

1001表示APP md5 different between real md5, please confirm it.

1002表示App md5 uncollect, please offer downloadlink.
示例值:"0"
ErrMsg String 对应errno的错误信息描述
示例值:""

SDKPlan

渠道合作sdk加固策略配置

被如下接口引用:DescribeEncryptPlan。

名称 类型 必选 描述
PlanId Integer 策略id
示例值:1

SDKResult

渠道合作加固sdk加固结果

被如下接口引用:DescribeEncryptInstances。

名称 类型 描述
ResultId String 加固任务结果Id

ServiceInfo

提交app加固的服务信息

被如下接口引用:CreateShieldInstance。

名称 类型 必选 描述
ServiceEdition String 服务版本,基础版basic,专业版professional,企业版enterprise。
CallbackUrl String 任务处理完成后的反向通知回调地址,如果不需要通知请传递空字符串。通知为POST请求,post包体数据示例{"Response":{"ItemId":"4cdad8fb86f036b06bccb3f58971c306","ShieldCode":0,"ShieldMd5":"78701576793c4a5f04e1c9660de0aa0b","ShieldSize":11997354,"TaskStatus":1,"TaskTime":1539148141}},调用方需要返回如下信息,{"Result":"ok","Reason":"xxxxx"},如果Result字段值不等于ok会继续回调。
SubmitSource String 提交来源 YYB-应用宝 RDM-rdm MC-控制台 MAC_TOOL-mac工具 WIN_TOOL-window工具。
PlanId Integer 加固策略编号,如果不传则使用系统默认加固策略。如果指定的plan不存在会返回错误。

ShieldInfo

加固后app的信息

被如下接口引用:DescribeShieldResult。

名称 类型 描述
ShieldCode Integer 加固结果的返回码
ShieldSize Integer 加固后app的大小
ShieldMd5 String 加固后app的md5
AppUrl String 加固后的APP下载地址,该地址有效期为20分钟,请及时下载
TaskTime Integer 加固的提交时间
ItemId String 任务唯一标识
ServiceEdition String 加固版本,basic基础版,professional专业版,enterprise企业版

ShieldPlanInfo

加固策略信息

被如下接口引用:DescribeShieldPlanInstance。

名称 类型 描述
TotalCount Integer 加固策略数量
PlanSet Array of PlanDetailInfo 加固策略具体信息数组

SoInfo

so加固信息

被如下接口引用:CreateShieldPlanInstance。

名称 类型 描述
SoFileNames Array of String so文件列表