mh0rst / skycast

Xposed module: Enable HDMI output for Android sky go germany app
6 stars 4 forks source link

Ein Testwunsch #8

Closed PanicBrothers closed 9 years ago

PanicBrothers commented 9 years ago

Moin, erstmal anbei das Log was noch verschollen war in Android 5.0.1 CM12:

04-26 14:07:13.379 E/Xposed ( 2504): java.lang.NoSuchMethodError: No static method findAndHookMethod(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;[Ljava/lang/Object;)V in class Lde/robv/android/xposed/XposedHelpers; or its super classes (declaration of 'de.robv.android.xposed.XposedHelpers' appears in /system/framework/XposedBridge.jar) 04-26 14:07:13.379 E/Xposed ( 2504): at uk.co.villainrom.pulser.youtubeallowfullscreenhdmi.Xposed.handleLoadPackage(Xposed.java:26) 04-26 14:07:13.379 E/Xposed ( 2504): at de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(IXposedHookLoadPackage.java:20) 04-26 14:07:13.379 E/Xposed ( 2504): at de.robv.android.xposed.callbacks.XC_LoadPackage.call(XC_LoadPackage.java:34) 04-26 14:07:13.379 E/Xposed ( 2504): at de.robv.android.xposed.callbacks.XCallback.callAll(XCallback.java:70) 04-26 14:07:13.379 E/Xposed ( 2504): at de.robv.android.xposed.XposedBridge$1.beforeHookedMethod(XposedBridge.java:208) 04-26 14:07:13.379 E/Xposed ( 2504): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:636) 04-26 14:07:13.379 E/Xposed ( 2504): at android.app.ActivityThread.handleBindApplication(Unknown Source) 04-26 14:07:13.379 E/Xposed ( 2504): at android.app.ActivityThread.access$1600(ActivityThread.java:147) 04-26 14:07:13.379 E/Xposed ( 2504): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1357) 04-26 14:07:13.379 E/Xposed ( 2504): at android.os.Handler.dispatchMessage(Handler.java:102) 04-26 14:07:13.379 E/Xposed ( 2504): at android.os.Looper.loop(Looper.java:135) 04-26 14:07:13.379 E/Xposed ( 2504): at android.app.ActivityThread.main(ActivityThread.java:5254) 04-26 14:07:13.379 E/Xposed ( 2504): at java.lang.reflect.Method.invoke(Native Method) 04-26 14:07:13.379 E/Xposed ( 2504): at java.lang.reflect.Method.invoke(Method.java:372) 04-26 14:07:13.379 E/Xposed ( 2504): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898) 04-26 14:07:13.379 E/Xposed ( 2504): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693) 04-26 14:07:13.379 E/Xposed ( 2504): at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117) 04-26 14:07:13.819 I/Xposed ( 2504): Succes hook for sequence: class =gdb param=ezd 04-26 14:09:46.039 I/Xposed ( 4881): [SkyCast] MediaRouter hooked 04-26 14:09:46.059 I/Xposed ( 4881): EXPERIMENTAL: Hooking native method boolean de.sky.bw.tools.NativeTools.doChecksAndLoad(android.app.Activity) 04-26 14:09:46.069 I/Xposed ( 4881): [SkyCast] Skull screen activation class hooked

Das läuft alles. Ich habe mir ein Multiboot für das Z3C gebastelt um das Xposed für Android 5.1 als Super Alpha mal zu testen auf CM12.1.

http://forum.xda-developers.com/xposed/super-alpha-posted-permission-xposed-t3072979

Kannst Du mir da auch einmal eine Version kompilieren die das [SkyCast] Skull screen activation class hooked mitmacht. Nur so als kleine Spielerei :-) Ich würde gerne wissen ob das CM12.1 wirklich so alltagstauglich ist, wie sie sagen aber in keinem Fall will ich auf SkyCast und Xposed verzichten.

Schönen Sonntag

mh0rst commented 9 years ago

Versuch mal http://www.mediafire.com/download/jzoimgv3z8gemti/xposed-sdk22-arm-20150509.zip Ist die aktuelle 3.0 alpha 4 mit den Modifikationen von romracer für 5.1, in Ermangelung von einem 5.1 Gerät ungetestet, Verwendung auf eigene Gefahr!

PanicBrothers commented 9 years ago

Moin, danke danke danke. Also ich bin jetzt auf CM12.1 also Android 5.1.1. Deine File läuft und Module wie Bootmanager und CallBlocker gehen. Kein Bootloop nischt, alles top. Das Hooking wohl noch nicht. SkyGo startet und wenn ich in den HDMI Modus zum schauen wechsele, dreht sich der Screen vernünftig und dann beendet die SkyGo App. Ich hab es zweimal versucht wie aus dem Log sicher zu sehen ist. Log anbei:

05-10 16:34:46.410 I/Xposed ( 312): ----------------- 05-10 16:34:46.410 I/Xposed ( 312): Starting Xposed binary version 61, compiled for SDK 22 05-10 16:34:46.410 I/Xposed ( 312): Device: Xperia Z3C (Sony), Android version 5.1.1 (SDK 22) 05-10 16:34:46.410 I/Xposed ( 312): ROM: cm_z3c-userdebug 5.1.1 LMY47V ef16e7a43c test-keys 05-10 16:34:46.410 I/Xposed ( 312): Build fingerprint: Sony/D5803/D5803:5.0.2/23.1.A.0.690/814068233:user/release-keys 05-10 16:34:46.410 I/Xposed ( 312): Platform: armeabi-v7a, 32-bit binary, system server: yes 05-10 16:34:46.410 I/Xposed ( 312): SELinux enabled: yes, enforcing: yes 05-10 16:34:46.430 I/Xposed ( 312): ----------------- 05-10 16:34:46.440 I/Xposed ( 312): Added Xposed (/system/framework/XposedBridge.jar) to CLASSPATH 05-10 16:34:46.910 I/Xposed ( 312): Detected ART runtime 05-10 16:34:46.930 I/Xposed ( 312): Found Xposed class de/robv/android/xposed/XposedBridge, now initializing 05-10 16:34:47.060 I/Xposed ( 312): Initializing XposedBridge version 64 05-10 16:34:47.170 I/Xposed ( 312): Loading modules from /data/app/com.mohammadag.xposedcallblocker-2/base.apk 05-10 16:34:47.340 I/Xposed ( 312): Loading class com.mohammadag.xposedcallblocker.XposedMod 05-10 16:34:47.370 I/Xposed ( 312): Loading modules from /data/app/de.defim.apk.bootmanager-2/base.apk 05-10 16:34:47.390 I/Xposed ( 312): Loading class de.defim.apk.bootmanager.Xposed 05-10 16:34:47.410 I/Xposed ( 312): [BootManager] initialized 05-10 16:34:47.410 I/Xposed ( 312): Loading class de.defim.apk.bootmanager.Xcheck 05-10 16:34:47.410 I/Xposed ( 312): Loading modules from /data/app/ma.wanam.youtubeadaway-2/base.apk 05-10 16:34:48.140 I/Xposed ( 312): Loading class ma.wanam.youtubeadaway.Xposed 05-10 16:34:48.150 I/Xposed ( 312): Loading modules from /data/app/com.devadvance.rootcloak-1/base.apk 05-10 16:34:48.590 I/Xposed ( 312): Loading class com.devadvance.rootcloak.RootCloak 05-10 16:34:48.590 I/Xposed ( 312): Loading modules from /data/app/io.mh0rst.skycast-1/base.apk 05-10 16:34:48.650 I/Xposed ( 312): Loading class io.mh0rst.skycast.CastEnabler 05-10 16:34:48.650 I/Xposed ( 312): Loading modules from /data/app/uk.co.villainrom.pulser.youtubeallowfullscreenhdmi-1/base.apk 05-10 16:34:48.960 I/Xposed ( 312): Loading class uk.co.villainrom.pulser.youtubeallowfullscreenhdmi.Xposed 05-10 16:39:42.229 I/DEBUG ( 292): * * * * * * * * * * * * * * * 05-10 16:39:42.229 I/DEBUG ( 292): Build fingerprint: 'Sony/D5803/D5803:5.0.2/23.1.A.0.690/814068233:user/release-keys' 05-10 16:39:42.229 I/DEBUG ( 292): Revision: '0' 05-10 16:39:42.229 I/DEBUG ( 292): ABI: 'arm' 05-10 16:39:42.229 I/DEBUG ( 292): pid: 7282, tid: 7282, name: de.sky.bw >>> de.sky.bw <<< 05-10 16:39:42.229 I/DEBUG ( 292): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x2 05-10 16:39:42.259 I/DEBUG ( 292): r0 00000002 r1 6fb5b658 r2 00000001 r3 00000000 05-10 16:39:42.259 I/DEBUG ( 292): r4 00000043 r5 00000002 r6 b4827800 r7 b46b4179 05-10 16:39:42.259 I/DEBUG ( 292): r8 b47f0a5c r9 13789420 sl 00000029 fp 00000000 05-10 16:39:42.259 I/DEBUG ( 292): ip 000000a0 sp bedc5bf8 lr b46b42af pc b46b42c0 cpsr 80000030 05-10 16:39:42.259 I/DEBUG ( 292): 05-10 16:39:42.259 I/DEBUG ( 292): backtrace: 05-10 16:39:42.259 I/DEBUG ( 292): #00 pc 001b92c0 /system/lib/libart.so (art::JNI::SetObjectArrayElement(JNIEnv, jobjectArray, int, jobject)+327) 05-10 16:39:42.259 I/DEBUG ( 292): #01 pc 00267843 /system/lib/libart.so (art::InvokeXposedHandleHookedMethod(art::ScopedObjectAccessAlreadyRunnable&, char const_, jobject, jmethodID, std::1::vector<jvalue, std::1::allocator >&)+566) 05-10 16:39:42.259 I/DEBUG ( 292): #02 pc 00287e79 /system/lib/libart.so (artQuickProxyInvokeHandler+1092) 05-10 16:39:42.259 I/DEBUG ( 292): #03 pc 000a3ebd /system/lib/libart.so (art_quick_proxy_invoke_handler+12) 05-10 16:39:42.259 I/DEBUG ( 292): #04 pc 00000000 05-10 16:39:43.099 I/DEBUG ( 292): 05-10 16:39:43.099 I/DEBUG ( 292): Tombstone written to: /data/tombstones/tombstone_09 05-10 16:40:14.749 I/DEBUG ( 292): \ * * * * * * * * * * * * * * * 05-10 16:40:14.749 I/DEBUG ( 292): Build fingerprint: 'Sony/D5803/D5803:5.0.2/23.1.A.0.690/814068233:user/release-keys' 05-10 16:40:14.749 I/DEBUG ( 292): Revision: '0' 05-10 16:40:14.749 I/DEBUG ( 292): ABI: 'arm' 05-10 16:40:14.749 I/DEBUG ( 292): pid: 7683, tid: 7683, name: de.sky.bw >>> de.sky.bw <<< 05-10 16:40:14.749 I/DEBUG ( 292): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x2 05-10 16:40:14.789 I/DEBUG ( 292): r0 00000002 r1 6fb5b658 r2 00000001 r3 00000000 05-10 16:40:14.789 I/DEBUG ( 292): r4 00000043 r5 00000002 r6 b4827800 r7 b46b4179 05-10 16:40:14.789 I/DEBUG ( 292): r8 b47f0a5c r9 12f89710 sl 00000029 fp 00000000 05-10 16:40:14.789 I/DEBUG ( 292): ip 000000a0 sp bedc5bf8 lr b46b42af pc b46b42c0 cpsr 80000030 05-10 16:40:14.789 I/DEBUG ( 292): 05-10 16:40:14.789 I/DEBUG ( 292): backtrace: 05-10 16:40:14.789 I/DEBUG ( 292): #00 pc 001b92c0 /system/lib/libart.so (art::JNI::SetObjectArrayElement(JNIEnv, jobjectArray, int, jobject)+327) 05-10 16:40:14.789 I/DEBUG ( 292): #01 pc 00267843 /system/lib/libart.so (art::InvokeXposedHandleHookedMethod(art::ScopedObjectAccessAlreadyRunnable&, char const_, jobject, jmethodID, std::1::vector<jvalue, std::1::allocator >&)+566) 05-10 16:40:14.789 I/DEBUG ( 292): #02 pc 00287e79 /system/lib/libart.so (artQuickProxyInvokeHandler+1092) 05-10 16:40:14.789 I/DEBUG ( 292): #03 pc 000a3ebd /system/lib/libart.so (art_quick_proxy_invoke_handler+12) 05-10 16:40:14.789 I/DEBUG ( 292): #04 pc 00000000 05-10 16:40:15.669 I/DEBUG ( 292): 05-10 16:40:15.669 I/DEBUG ( 292): Tombstone written to: /data/tombstones/tombstone_00

mh0rst commented 9 years ago

Ist ja witzig, das sieht so aus als ob der Totenkopf-Hook funktioniert und jetzt die HDMI Ausgabe Probleme bereitet. Ich kann das derzeit aus technischen und zeitlichen Gründen nicht weiterverfolgen, ich werde mich später darum kümmern.

PanicBrothers commented 9 years ago

Kein Stress...Ich kann ja zwischen den ROMs hin und her hüpfen und einer funktioniert ja gut. Ist ja auch alles Mega Alpha aber macht eben trotzdem Spass :D :D :D Ich habe aber noch einmal eine sauberer Cm12.1 Version installiert, da kam noch folgendes Log hinzu:

05-12 02:07:20.330 I/Xposed ( 311): Loading modules from /data/app/io.mh0rst.skycast-1/base.apk 05-12 02:07:20.340 I/Xposed ( 311): Loading class io.mh0rst.skycast.CastEnabler 05-12 02:07:20.360 I/Xposed ( 311): This class requires resource-related hooks (which are disabled), skipping it.

Ohne SkyCast kommt der Totenkopf Hinweis sofort und mit geht wie gesagt nur die Ausgabe des Films nicht. Geht auch nicht ohne HDMI oder ein Chromecast, das startet auch nicht auf dem Handy alleine. "Sky Go beendet" Thats all.

fda77 commented 9 years ago

Hallo, kannst du Xposed für 5.1 mit den neuesten Patches von hier compilieren: https://github.com/C3C0/android_art/ Oder push doch mal den Patch :)

mh0rst commented 9 years ago

Kann ich wohl machen: http://www.mediafire.com/download/fc40bb8px89zp6d/xposed-sdk22-arm-20150515.zip Wenn ich den Patch richtig verstehe, dürfte er sogar den Segfault Fehler von @PanicBrothers fixen. Der Patch selber ist hochgradig trivial, daher hab ich das bisher nur lokal gemacht und nicht in einem Fork:

android@localhost:~/android/art$ git diff
diff --git a/runtime/mirror/art_method.cc b/runtime/mirror/art_method.cc
index 8acb651..e2bd9b9 100644
--- a/runtime/mirror/art_method.cc
+++ b/runtime/mirror/art_method.cc
@@ -378,8 +378,8 @@ void ArtMethod::EnableXposedHook(JNIEnv* env, jobject additional_info) {
     XLOG(FATAL) << "You cannot hook the original method";
   } else if (IsNative()) {
     // Hooking native methods should hopefully work fine, but needs testing
-    XLOG(INFO) << "Not hooking native method " << PrettyMethod(this);
-    return;
+    XLOG(INFO) << "EXPERIMENTAL: Hooking native method " << PrettyMethod(this);
+    // return;
   }

android@localhost:~/android/art$
PanicBrothers commented 9 years ago

Also das Könnte den Fehler nicht nur beheben, dass tut es auch :dart: Das folgende funktioniert damit.

Leider schluckt oder verdödelt XPosed das Log wieder irgendwo, es hört nach dem laden der Module auf. Ich werde mal mit einem anderen Kernel die SELinux-Status von Strikt auf Enforced setzen, dann sollte auch das Log wieder erscheinen.

Danke an euch alle !!!...Dann kann ich ja auf 5.1.1 bleiben..Das rockt !!!

mh0rst commented 9 years ago

Schön, dass Skycast nun auch auf 5.1 läuft :) Ich habe das Wiki um eine Anleitung für 5.1 ergänzt, ich denke damit ist dieser Issue nun abgeschlossen. @PanicBrothers: Wenn du noch Logs irgendwo herbekommst, kannst du sie gerne hier noch als Kommentar hinzufügen, ansonsten reicht mir deine Aussage auch.

fda77 commented 9 years ago

@mh0rst Danke!!! Erfolgreich mit Nexus 7 stock 5.1.1 und neuester App 1.3.4 #3193 gestestet Das grö´te Problem für mich ist das Erstellen der Buildumgebung für's Xposed compilieren, noch nie gemacht o_o

Huese commented 9 years ago

Hey, da xposed nun auch auf touchwiz Roms mit Android 5 läuft, wollte ich mal fragen, ob es möglich ist, seine Modifikation des xposed in das für diese Roms zu implementierten. Da ich davon keine Ahnung habe, wäre es cool, wenn du dich dazu mal melden könntest!

mh0rst commented 9 years ago

@Huese die letzte Version von arter97 enthält bereits die Änderungen von rovo89, um native Methoden in Xposed zu hooken. D.h. die Version V4 (xposed-sdk21-arm-20150430-arter97-V4-generic.zip) sollte keine Modifikation meinerseits mehr erfordern: http://forum.xda-developers.com/xposed/unofficial-xposed-samsung-lollipop-t3113463 Probier die Version einfach mal aus und teste Skycast, ich würde mich über eine Rückmeldung freuen :)

fda77 commented 9 years ago

Ich finde den commit jetzt nicht, aber soweit ich mich erinnere war das erst diesen Monat und seitdem gab es kein neues Release

mh0rst commented 9 years ago

Die V4 von arter97 wurde laut Dateiänderungsdatum am 15. Juni gebaut und dürfte daher auf dem Stand dieses Commits sein: https://github.com/arter97/android_art/commits/c5d74b3a60cc38d92dce761c430689b488578c92, was auch folgenden Commit für native Methoden einschließt: https://github.com/arter97/android_art/commit/fd063c9e5e26f3e120428712f1156e17c9638b6d

fda77 commented 9 years ago

Ich hab mich nur auf Releases von rovo bezogen. Den Commit hab ich mittlerweile gefunden: https://github.com/rovo89/android_art/commit/fd063c9e5e26f3e120428712f1156e17c9638b6d der war vor 11 Tagen Somit dürft es mit der nächsten "offiziellen" Version auch funktionieren EDIT: Das von arter97 ist anscheinend ein form vom fork eines forks der geforkt wurde .. scheiss git :D

fda77 commented 9 years ago

Klappt wunderbar mit "Xposed for Android 5.1 - v65 / 20150630" von "romracer" : http://forum.xda-developers.com/xposed/super-alpha-posted-permission-xposed-t3072979

mh0rst commented 9 years ago

Danke für die Rückmeldung! Dann muss ich mich nun nicht mehr um angepasste Xposed-Versionen kümmern :)

fda77 commented 9 years ago

Nicht dass du nun Langeweile hast :D Hätte eine Idee für ein neues Fearture: Im Modul die PIN hinterlegen, dann dann in der App automatisch eintragen. Das ist nämlich bisschen nervig

mh0rst commented 9 years ago

Ich bin mir noch nicht sicher, ob ich dieses Feature umsetzen werde, da es einerseits über den Einsatzzweck des Moduls (sinnlose Restriktionen entfernen) hinausgeht und andererseits die Tage dieses Moduls sowieso gezählt sind. In wenigen Monaten läuft mein Sky Vertrag aus und ich gedenke ihn aufgrund der Pairingproblematik nicht zu verlängern. EDIT: Mal ganz davon abgesehen dass mein MHL-HDMI Adapter schon vor Monaten den Geist aufgegeben hat und ich bislang für mein neues Galaxy S5 noch keinen Grund für den Kauf des MHL Adapters gesehen habe. Derzeit nutze ich skycast nur für die Totenkopfbekämpfung.

fda77 commented 9 years ago

Falls du es nicht wusstest, das Moudl hilf auch dabei den Bildschirm mit Chromecast zu übrtragen :) MHL wäre mir zu fummelig. Ich bin da aber auch in 2 Monaten weg, ich sag nur unter-baumarkt-receiver-niveau-schrott