WSO2EMM 重建移动代理失败
WSO2EMM rebuilding the mobile agent fails
我正在尝试使用自定义密钥库(以允许使用自己的 SSL 证书的 SSL)和可选的其他自定义来重建 Android 代理。按照 documentation (product-emm 2.0.1) 中的描述构建项目时,Android studio (Android studio 2.2, Androind 5.1.1, API 22)声称以下方法未知:
- org.wso2.emm.agent.api.RuntimeInfo - Environment.getLegacyExternalStorageDirectory(第 159 行)
- org.wso2.emm.agent.services.AlarmReceiver - intent.getExtra(第 56 行)
- org.wso2.emm.agent.services.NetworkConnectedReceiver - context.startServiceAsUser(第 42 行)
- org.wso2.emm.agent.utils.CommonUtils - context.startServiceAsUser(第 432、445 行)
我需要不同的 API 级别(根据文档应该没问题)、不同的工具还是什么?根据 ,"startServiceAsUser" 不是 public 方法..
编辑:现在我看到要重建的项目应该是 product-mdm (???) 我假设 MDM 平台是(应该是)EMM 的一部分,但是 - 代码库略有不同。似乎这个问题与 product-emm 2.2.0-SNAPSHOT
有关
显然我使用了错误的项目源 (2.2.0-SNAPSHOT)。使用官方版本(2.0.1)提供的源代码时。构建成功。
EMM 2.0.1 已经过时(IMO 至少有半年),从那以后有很多更改/错误修复,您可能想要。
如果您对 EMM Android 代理源代码做出任何贡献,那么您肯定需要针对最新的 EMM(目前为 2.2.0)进行编译。
我在编译 EMM 2.2 android 代理时也面临同样的错误 - 这是因为它们使用隐藏系统 API,这在常规 Android SDK 中不可用,这个 API 可以通过反射 API(WSO2 维护者应该这样做)或使用 ASDK 中的 "extended" android.jar 访问,包括隐藏的 API。这样的 jars 文件可以从设备上的系统 jar 中提取(你需要一个带有适当 Android API 版本的 root 设备)或从 AOSP 构建中提取,其中正在构建 Android ROM,并且系统应用程序是针对带有隐藏 APIs.
的系统 jar 构建的
有关此事的更多信息,请参阅 How do I build the Android SDK with hidden and internal APIs available?。
显然 WSO2 维护者使用这样的 "extended" 系统库编译 android 代理。
已编辑: 事实上,WSO2 维护者针对隐藏 API 的 ASDK 进行编译,这是一个概念点,因为代理可以部署到隐藏 [= 的 COPE 设备39=]可用。在此处查看更多信息:https://wso2.org/jira/browse/EMM-141
我个人比较喜欢在ASDK中更新android.jar隐藏API,可以在这里下载:library that provides access to Android hidden API and internal resources
我正在尝试使用自定义密钥库(以允许使用自己的 SSL 证书的 SSL)和可选的其他自定义来重建 Android 代理。按照 documentation (product-emm 2.0.1) 中的描述构建项目时,Android studio (Android studio 2.2, Androind 5.1.1, API 22)声称以下方法未知:
- org.wso2.emm.agent.api.RuntimeInfo - Environment.getLegacyExternalStorageDirectory(第 159 行)
- org.wso2.emm.agent.services.AlarmReceiver - intent.getExtra(第 56 行)
- org.wso2.emm.agent.services.NetworkConnectedReceiver - context.startServiceAsUser(第 42 行)
- org.wso2.emm.agent.utils.CommonUtils - context.startServiceAsUser(第 432、445 行)
我需要不同的 API 级别(根据文档应该没问题)、不同的工具还是什么?根据
编辑:现在我看到要重建的项目应该是 product-mdm (???) 我假设 MDM 平台是(应该是)EMM 的一部分,但是 - 代码库略有不同。似乎这个问题与 product-emm 2.2.0-SNAPSHOT
有关显然我使用了错误的项目源 (2.2.0-SNAPSHOT)。使用官方版本(2.0.1)提供的源代码时。构建成功。
EMM 2.0.1 已经过时(IMO 至少有半年),从那以后有很多更改/错误修复,您可能想要。
如果您对 EMM Android 代理源代码做出任何贡献,那么您肯定需要针对最新的 EMM(目前为 2.2.0)进行编译。
我在编译 EMM 2.2 android 代理时也面临同样的错误 - 这是因为它们使用隐藏系统 API,这在常规 Android SDK 中不可用,这个 API 可以通过反射 API(WSO2 维护者应该这样做)或使用 ASDK 中的 "extended" android.jar 访问,包括隐藏的 API。这样的 jars 文件可以从设备上的系统 jar 中提取(你需要一个带有适当 Android API 版本的 root 设备)或从 AOSP 构建中提取,其中正在构建 Android ROM,并且系统应用程序是针对带有隐藏 APIs.
的系统 jar 构建的有关此事的更多信息,请参阅 How do I build the Android SDK with hidden and internal APIs available?。
显然 WSO2 维护者使用这样的 "extended" 系统库编译 android 代理。
已编辑: 事实上,WSO2 维护者针对隐藏 API 的 ASDK 进行编译,这是一个概念点,因为代理可以部署到隐藏 [= 的 COPE 设备39=]可用。在此处查看更多信息:https://wso2.org/jira/browse/EMM-141
我个人比较喜欢在ASDK中更新android.jar隐藏API,可以在这里下载:library that provides access to Android hidden API and internal resources