2016-10-03 4 views
0

カスタムキーストア(独自のSSL証明書を使用してSSLを許可する)とオプションで他のカスタマイズを使用してAndroidエージェントを再構築しようとしています。 documentation(製品EMM 2.0.1)に記載されているように、プロジェクトを構築する場合、アンドロイドスタジオ(アンドロイドスタジオ2.2、Androind 5.1.1、API 22)は、以下の方法があるunknow主張:モバイルエージェントを再構築するWSO2EMMが失敗する

  • 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レベル(ドキュメントによるとわかります)、違いのツールなどが必要ですか? this postによれば、 "startServiceAsUser"はパブリックメソッドではありません。

編集:今すぐ再構築するプロジェクトがproduct-mdm(???)である必要があります。私はMDMプラットフォームがしかし、EMMは、コードベースがわずかに異なります。この問題は製品の問題と思われます。2.2.0-SNAPSHOT

答えて

1

EMM 2.0.1はかなり古くなっています(少なくとも半年はIMOです)、これから多くの変更やバグの修正がありました。

EMM Androidエージェントのソースコードに貢献した場合は、最新のEMM(現時点では2.2.0)に対してコンパイルする必要があります。

また、EMM 2.2アンドロイドエージェントをコンパイルするのと同じエラーに直面します。これは、通常のAndroid SDKでは使用できない隠しシステムAPIを使用しているためです。このAPIはReflection API(WSO2の管理者はこの方法にする必要があります)隠されたAPIを含むASDKからandroid.jarを "拡張"しました。このようなjarファイルは、デバイス上のシステムjar(適切なAndroid APIバージョンを搭載したルートデバイスが必要です)またはAndroid ROMが構築されているAOSPビルドから、システムアプリケーションは隠されたAPIを使って構築されています。

詳細については、How do I build the Android SDK with hidden and internal APIs available?を参照してください。

明らかにWSO2のメンテナは、このような「拡張」システムライブラリを持つアンドロイドエージェントをコンパイルします。

EDITED:確かWSO2メンテナが隠されたAPIでASDKに対してコンパイルエージェントが利用可能に隠されたAPIを使用したデバイスを対処するために展開することができるので、これは、概念的なポイントです。ここで詳細情報を参照してください。https://wso2.org/jira/browse/EMM-141

私の個人的な好みは隠されたAPIでASDKでandroid.jarを更新することで、ここからダウンロードすることができます:library that provides access to Android hidden API and internal resources

+0

は包括的な答えをいただき、ありがとうございます。実際、私が持っていた問題は、隠されたAPIを持つandroid.jarにありました。現在のバージョンではルートデバイスを検出できますが、エミュレータはルートデバイスとして認識されます:P – gusto2

0

間違ったプロジェクトソース(2.2.0-SNAPSHOT)を使用しています。公式リリース(2.0.1)の提供されたソースコードを使用する場合。ビルドは成功です。

関連する問題