2016-10-03 2 views
0

Ich versuche, den Android-Agent mit benutzerdefinierten Keystores (um SSL mit eigenen SSL-Zertifikaten zu ermöglichen) und optional anderen Anpassungen neu erstellen. Wenn das Projekt Aufbau wie in der documentation (product-EMM 2.0.1) beschrieben, ist das Android Studio (Android Studio 2.2, 5.1.1 Androind, API 22) beansprucht sind die folgenden Methoden Unknow:WSO2EMM Wiederaufbau des mobilen Agenten schlägt fehl

  • org.wso2 .emm.agent.api.RuntimeInfo - Environment.getLegacyExternalStorageDirectory (Linie 159)
  • org.wso2.emm.agent.services.AlarmReceiver - intent.getExtra (Linie 56)
  • org.wso2.emm.agent.services .NetworkConnectedReceiver - context.startServiceAsUser (Zeile 42)
  • org.wso2.emm.agent.utils.CommonUtils - context.startServiceAsUser (Zeile 432, 445)

Benötige ich eine andere API-Ebene (laut der Dokumentation sollte es in Ordnung sein), Differenz-Tools oder etwas? Laut this post ist der "startServiceAsUser" keine öffentliche Methode.

Edit: jetzt sehe ich das Projekt zum Wiederaufbau sollte Produkt-MDM sein (???) Ich nehme an, die MDM-Plattform ist (sollte sein) Teil von die EMM jedoch - die Codebasis ist leicht differiert. Scheint, dieses Problem betrifft das Produkt-emm 2.2.0-SNAPSHOT

Antwort

1

EMM 2.0.1 ist ziemlich veraltet (IMO für mindestens die Hälfte des Jahres), es gab viele Änderungen/Bugfixes seit damals, die Sie wahrscheinlich haben möchten.

Und wenn Sie einen Beitrag zu EMM Android Agent Quellcode dann müssen Sie unbedingt gegen die neueste EMM (2.2.0 im Moment) kompilieren.

Ich habe auch die gleichen Fehler beim Zusammenstellen von EMM 2.2 Android Agent - es ist, weil sie versteckte System-API verwenden, die nicht in regulären Android SDK verfügbar sind, kann diese API über Reflection API zugegriffen werden (WSO2 Maintainer sollten auf diese Weise gehen) oder mit "erweitert" android.jar von ASDK inklusive versteckter API. Solche JAR-Dateien können aus System-JARs auf Geräten (Sie benötigen ein gerootetes Gerät mit der entsprechenden Android-API-Version an Bord) oder aus AOSP-Build, in dem Android-ROM erstellt wird, und System-Apps werden gegen System-JARs mit versteckten APIs erstellt.

Weitere Informationen zu diesem Thema finden Sie unter How do I build the Android SDK with hidden and internal APIs available?.

Anscheinend kompilieren WSO2 Maintainer android Agent mit solchen "erweiterten" System-Bibliotheken.

EDITED: In der Tat kompilieren WSO2 Maintainer gegen ASDK mit versteckter API, dies ist ein konzeptioneller Punkt, da der Agent auf COPE-Geräten mit versteckten APIs bereitgestellt werden kann. Sehen Sie weitere Informationen hier: https://wso2.org/jira/browse/EMM-141

Meine persönliche Präferenz android.jar in ASDK mit versteckten API zu aktualisieren ist, kann hier heruntergeladen werden: library that provides access to Android hidden API and internal resources

+0

Vielen Dank für die ausführliche Antwort. Nun, das Problem, das ich hatte, war mit der android.jar mit versteckter API. Die aktuelle Version kann jedoch gerootete Geräte erkennen - der Emulator wird ebenfalls als gerootetes Gerät erkannt: P – gusto2

0

Anscheinend habe ich die falsche Projektquelle (2.2.0-SNAPSHOT) verwendet. Bei Verwendung des mitgelieferten Quellcodes der offiziellen Version (2.0.1). Der Build ist erfolgreich.