I'm surprised no one has hacked. This app to make it work on the xoom.
Sent from my SPH-D700 using XDA Premium App
Indeed, I am surprised as well, how has this not been hacked yet?
Just getting ready to start a thread about this. it works on the Evo, Evo 3D and my Galaxy Tab. Now that I have a Xoom too, it doesn't work. What's the problems is it the resolution?
I have it on my vibrant. Works GREAT!!!
Sent from my SGH-T959 using XDA Premium App
MikeJennni said:
I have it on my vibrant. Works GREAT!!!
Sent from my SGH-T959 using XDA Premium App
Click to expand...
Click to collapse
That's wonderful, but what about our Xooms?
it's a combination of honeycomb and the tegra processor. same goes for netflix.
patass said:
it's a combination of honeycomb and the tegra processor. same goes for netflix.
Click to expand...
Click to collapse
Wow. Are any other Honeycombs tablets able to run it?
shaun0207 said:
Wow. Are any other Honeycombs tablets able to run it?
Click to expand...
Click to collapse
No
Sent from my Nexus S 4G using Tapatalk
patass said:
it's a combination of honeycomb and the tegra processor. same goes for netflix.
Click to expand...
Click to collapse
Are you sure it is just that there's no copy protection or whatever bull**** built-in? I might take a crack at this, anyway.
jondwillis said:
Are you sure it is just that there's no copy protection or whatever bull**** built-in? I might take a crack at this, anyway.
Click to expand...
Click to collapse
Let me reiterate, this app works on my locked bootloader droidx but doesn't work anymore on my sisters Droid 1 with the same gpu. It used to work, but they disabled it recently, if my sister is to be trusted.
There is a very easy to have HBO go on ur zoom. Provided you have a subscription to HBO obviously. OK go to your android browser on the zoom. In the address bar type this. About:debug. Hit enter. Nothing will really happen go to settings in top right corner of browser. You should see the word debug. Click that. Find UAString. Click it and choose desktop..DO NOT RESTART BROWSER just got HBOgo.com and instead of asking u what device u have it will bring you to the desktop version where u enter your subscription info and then have at it. Just like on your desktop. And it is smooth and quick just as good as our apps
Sent from my Xoom using XDA App
chrism0483 said:
There is a very easy to have HBO go on ur zoom. Provided you have a subscription to HBO obviously. OK go to your android browser on the zoom. In the address bar type this. About:debug. Hit enter. Nothing will really happen go to settings in top right corner of browser. You should see the word debug. Click that. Find UAString. Click it and choose desktop..DO NOT RESTART BROWSER just got HBOgo.com and instead of asking u what device u have it will bring you to the desktop version where u enter your subscription info and then have at it. Just like on your desktop. And it is smooth and quick just as good as our apps
Sent from my Xoom using XDA App
Click to expand...
Click to collapse
Oh sure, the flash site works, but it is hard to use and I always notice choppiness when it starts sending high quality video. (the video quality adapts with connection speed)
Update!
I took a look at the APK and was able to bypass their device check, login to my account, and even get the short HBO logo video to play, and then a FC.
The logcat looks like this:
Code:
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): java.lang.NoSuchFieldError: no field with name='mSurface' signature='I' in class Landroid/view/Surface;
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.nextreaming.nexplayerengine.NexPlayer._Constructor(Native Method)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.nextreaming.nexplayerengine.NexPlayer.init(NexPlayer.java:1410)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.HBO.Service.NexPlayerService.getNexPlayerGuard(NexPlayerService.java:54)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.HBO.PlayMediaNexPlayerActivity.playActualVideo(PlayMediaNexPlayerActivity.java:446)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.HBO.PlayMediaNexPlayerActivity.access$8(PlayMediaNexPlayerActivity.java:418)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.HBO.PlayMediaNexPlayerActivity$5.handleMessage(PlayMediaNexPlayerActivity.java:266)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at android.os.Handler.dispatchMessage(Handler.java:99)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at android.os.Looper.loop(Looper.java:132)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at android.app.ActivityThread.main(ActivityThread.java:4025)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at java.lang.reflect.Method.invokeNative(Native Method)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at java.lang.reflect.Method.invoke(Method.java:491)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at dalvik.system.NativeStart.main(Native Method)
I'll delve a little further tomorrow, but I'm optimistic since it was very, very easy to bypass their device checks.
Edit) I can't watch anything for awhile since the crash has caused my HBO GO ID to be locked into streaming something, but I'll post the APK here.
much appreciated Jon
jondwillis said:
Update!
I took a look at the APK and was able to bypass their device check, login to my account, and even get the short HBO logo video to play, and then a FC.
The logcat looks like this:
Code:
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): java.lang.NoSuchFieldError: no field with name='mSurface' signature='I' in class Landroid/view/Surface;
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.nextreaming.nexplayerengine.NexPlayer._Constructor(Native Method)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.nextreaming.nexplayerengine.NexPlayer.init(NexPlayer.java:1410)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.HBO.Service.NexPlayerService.getNexPlayerGuard(NexPlayerService.java:54)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.HBO.PlayMediaNexPlayerActivity.playActualVideo(PlayMediaNexPlayerActivity.java:446)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.HBO.PlayMediaNexPlayerActivity.access$8(PlayMediaNexPlayerActivity.java:418)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.HBO.PlayMediaNexPlayerActivity$5.handleMessage(PlayMediaNexPlayerActivity.java:266)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at android.os.Handler.dispatchMessage(Handler.java:99)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at android.os.Looper.loop(Looper.java:132)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at android.app.ActivityThread.main(ActivityThread.java:4025)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at java.lang.reflect.Method.invokeNative(Native Method)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at java.lang.reflect.Method.invoke(Method.java:491)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at dalvik.system.NativeStart.main(Native Method)
I'll delve a little further tomorrow, but I'm optimistic since it was very, very easy to bypass their device checks.
Edit) I can't watch anything for awhile since the crash has caused my HBO GO ID to be locked into streaming something, but I'll post the APK here.
Click to expand...
Click to collapse
OUTSTANDING! Thank you so much for looking into this
To be clear, I'm not yet certain if the playback FC is happening because I'm skipping some DRM/device checks, or because of a hardware incompatibility.
Edit) I sideloaded the modified apk on my droid x, which handles the regular hbogo app just fine normally. At first when I tried to watch something, the screen flashed black for a split second and then returned me to the previous screen. After closing the app and signing in again, I was able to get playback working just fine. Seems like it could be an incompatibility after all.
So if you know how to remove device checks can you give hulu plus a crack. I can post the apk if you need it.
Sent from my Xoom using XDA Premium App
B Dizzle said:
So if you know how to remove device checks can you give hulu plus a crack. I can post the apk if you need it.
Sent from my Xoom using XDA Premium App
Click to expand...
Click to collapse
Hey, let's not call these cracks... more like... enablers. But I can take a crack at it, even though its probably not as easy as the HBO GO one.
Nice! The only thing missing is Hulu. HBO would be icing on the cake with Netflix and Hulu up and running.
Sent from my Xoom using XDA Premium App
jondwillis said:
Update!
I took a look at the APK and was able to bypass their device check, login to my account, and even get the short HBO logo video to play, and then a FC.
The logcat looks like this:
Code:
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): java.lang.NoSuchFieldError: no field with name='mSurface' signature='I' in class Landroid/view/Surface;
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.nextreaming.nexplayerengine.NexPlayer._Constructor(Native Method)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.nextreaming.nexplayerengine.NexPlayer.init(NexPlayer.java:1410)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.HBO.Service.NexPlayerService.getNexPlayerGuard(NexPlayerService.java:54)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.HBO.PlayMediaNexPlayerActivity.playActualVideo(PlayMediaNexPlayerActivity.java:446)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.HBO.PlayMediaNexPlayerActivity.access$8(PlayMediaNexPlayerActivity.java:418)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.HBO.PlayMediaNexPlayerActivity$5.handleMessage(PlayMediaNexPlayerActivity.java:266)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at android.os.Handler.dispatchMessage(Handler.java:99)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at android.os.Looper.loop(Looper.java:132)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at android.app.ActivityThread.main(ActivityThread.java:4025)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at java.lang.reflect.Method.invokeNative(Native Method)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at java.lang.reflect.Method.invoke(Method.java:491)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
07-22 03:28:22.421: ERROR/AndroidRuntime(2382): at dalvik.system.NativeStart.main(Native Method)
I'll delve a little further tomorrow, but I'm optimistic since it was very, very easy to bypass their device checks.
Edit) I can't watch anything for awhile since the crash has caused my HBO GO ID to be locked into streaming something, but I'll post the APK here.
Click to expand...
Click to collapse
Is there a chance this will lock our device or HBO GO ID to be locked?
Related
I saw something in my logcat about "Flurry Agent" sending out data to its server. It looks like it collects analytics about certain apps and uploads it.
Does anyone know how to remove/disable this?
A hosts file addition is one way.
Some google search results:
Flurry-Legal
flurry-legal-dcma
Comes with Locale. (I don't have locale installed anymore, yet Flurry was running)
A search on my phone turned up nothing. It may be a library inside an apk.
find / -name "*lurry*"
I've added these line to my hosts file ( /etc/hosts )
127.0.0.1 data.flurry.com
127.0.0.1 flurry.com
127.0.0.1 dev.flurry.com
The below data shows up on the dashboard once flury is added to an app.
Application The name of the application.
New Users The number of new users who used the application for the first time during the specified time period.
Active Users The number of unique users who used the application during the last complete week of the specified time period.
Sessions The total number of user sessions that occurred during the specified time period.
Weekly Growth The percentage increase of new users between the last two complete weeks of the specified time period.
User Retention The percent of users that signed up during the time period have used the app during the last 7 days before today.
Click to expand...
Click to collapse
Also:
Device Model,
Firmware,
Carrier,
Location,
Errors and Exceptions,
Custom 'Events'.
Omg man i just noticed the same thing and was about to post!! I have no idea what app it is though because I don't have locale installed
It could be inside any app you have. Flurry is a company that collect statistics on app usage afaik and developers add the library to their apps. Don't know how widespread it is for developers to do this though.
SBS_ said:
It could be inside any app you have. Flurry is a company that collect statistics on app usage afaik and developers add the library to their apps. Don't know how widespread it is for developers to do this though.
Click to expand...
Click to collapse
Yes I figured that out and even downloaded the sdk.
Found out that BetterTermEmulator pro uses this and sends an error report whenever it crashes.
Code:
I/BetterTermEmulator( 3440): Command: '/system/bin/sh logcat'
I/BetterTermEmulator( 3440): chdir() to '/'
I/BetterTermEmulator( 3440): title is: 'BTEP'
I/BetterTermEmulator( 3440): Starting subprocess '/system/bin/sh logcat null'
I/BetterTermEmulator( 3440): waiting for: 463
D/FlurryAgent( 3440): Starting new session
D/NetworkLocationProvider( 141): addListener(): com.magicandroidapps.bettertermpro
D/NetworkLocationProvider( 141): setMinTime: 0
D/WifiService( 141): acquireWifiLockLocked: WifiLock{NetworkLocationProvider type=2 [email protected]}
D/FlurryAgent( 3440): Sending report to: http://data.flurry.com/aar.do
I/BetterTermEmulator( 3440): Subprocess exited: 2
I/NotificationService( 141): enqueueToast pkg=com.magicandroidapps.bettertermpro [email protected] duration=0
I/BetterTermEmulator( 3440): Subprocesses exited with code 2
E/BetterTermEmulator( 3440): onSizeChanged: W:480 H:762old W:0H:0
D/FlurryAgent( 3440): Ending session
D/LocationManager( 3440): removeUpdates: listener = [email protected]
D/NetworkLocationProvider( 141): removeListener(): com.magicandroidapps.bettertermpro
I use the custom hosts file found over in android app, gonna have to open that up and addd them in if its not already there.
I just noticed this too while working with the Eclipse IDE DDMS and logcat views. Edited my /etc/hosts as well.
for info: the AdFree application is adding these lines to the hosts file
Update 3/1: http://forum.xda-developers.com/showpost.php?p=11744801&postcount=118
Update 2/25: http://forum.xda-developers.com/showpost.php?p=11643634&postcount=103
Update: http://forum.xda-developers.com/showpost.php?p=10767062&postcount=59
Some progress has been made (quite a bit actually). Still not working though.
Old:
Anyone working on this currently? I've cobbled together some info from the N1 port and have the following:
Libraries pushed
Code:
/system/lib/libganril.so
/system/lib/libkineto.so
/system/lib/librilswitch.so
(Added this for posterity, but it didn't seem to solve any issues)
Code:
/system/lib/libhtc_ril.so
Edited build.prop
Removed
Code:
rild.libpath=/vendor/lib/libsec-ril.so
Added
Code:
rild.libpath=/system/lib/librilswitch.so
rilswitch.vendorlibpath=/vendor/lib/libsec-ril.so
rilswitch.ganlibpath=/system/lib/libganril.so
I compiled the kineto_gan module from the cm commit against the kernel source released and the module inserts properly (here: https://github.com/cyanogen/cm-kernel-exp/commit/9158026851f843c5af0239fe16fbd99f0ecc37b8#diff-0_
Using the APK linked in the N1 forum: MS-HTCVISION-KNT20-02.apk
With this done the phone boots fine and I can get service with t-mobile. The kineto_gan module appears to load without issue. However, when launching the Wifi calling app I immediately get a FC. Logcat shows
Code:
D/dalvikvm( 1256): Trying to load lib /data/data/com.android.kineto/lib/libkinet
o.so 0x40514538
W/dalvikvm( 1256): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initi
alizing Lcom/android/kineto/kineto;
W/dalvikvm( 1256): Class init failed in newInstance call (Lcom/android/kineto/ki
neto;)
D/AndroidRuntime( 1256): Shutting down VM
W/dalvikvm( 1256): threadid=1: thread exiting with uncaught exception (group=0x4
0015560)
E/AndroidRuntime( 1256): FATAL EXCEPTION: main
E/AndroidRuntime( 1256): java.lang.ExceptionInInitializerError
E/AndroidRuntime( 1256): at java.lang.Class.newInstanceImpl(Native Method
)
E/AndroidRuntime( 1256): at java.lang.Class.newInstance(Class.java:1409)
E/AndroidRuntime( 1256): at android.app.Instrumentation.newActivity(Instr
umentation.java:1021)
E/AndroidRuntime( 1256): at android.app.ActivityThread.performLaunchActiv
ity(ActivityThread.java:1536)
E/AndroidRuntime( 1256): at android.app.ActivityThread.handleLaunchActivi
ty(ActivityThread.java:1638)
E/AndroidRuntime( 1256): at android.app.ActivityThread.access$1500(Activi
tyThread.java:117)
E/AndroidRuntime( 1256): at android.app.ActivityThread$H.handleMessage(Ac
tivityThread.java:928)
E/AndroidRuntime( 1256): at android.os.Handler.dispatchMessage(Handler.ja
va:99)
E/AndroidRuntime( 1256): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 1256): at android.app.ActivityThread.main(ActivityThrea
d.java:3647)
E/AndroidRuntime( 1256): at java.lang.reflect.Method.invokeNative(Native
Method)
E/AndroidRuntime( 1256): at java.lang.reflect.Method.invoke(Method.java:5
07)
E/AndroidRuntime( 1256): at com.android.internal.os.ZygoteInit$MethodAndA
rgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime( 1256): at com.android.internal.os.ZygoteInit.main(Zygot
eInit.java:597)
E/AndroidRuntime( 1256): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 1256): Caused by: java.lang.UnsatisfiedLinkError: Cannot load
library: reloc_library[1311]: 75 cannot locate '_ZN7android11AudioRecordC1Eij
ijijPFviPvS1_ES1_i'...
E/AndroidRuntime( 1256):
E/AndroidRuntime( 1256): at java.lang.Runtime.loadLibrary(Runtime.java:43
4)
E/AndroidRuntime( 1256): at java.lang.System.loadLibrary(System.java:554)
E/AndroidRuntime( 1256): at com.android.kineto.kineto.<clinit>(kineto.jav
a:1563)
E/AndroidRuntime( 1256): ... 15 more
D/dalvikvm( 107): GC_CONCURRENT freed 2050K, 43% free 6364K/11079K, external 50
89K/5896K, paused 2ms+6ms
Clearly we are running into an issue as shown here:
Code:
W/dalvikvm( 1256): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initi
alizing Lcom/android/kineto/kineto;
Code:
E/AndroidRuntime( 1256): Caused by: java.lang.UnsatisfiedLinkError: Cannot load
library: reloc_library[1311]: 75 cannot locate '_ZN7android11AudioRecordC1Eij
ijijPFviPvS1_ES1_i'...
I am hoping someone can help shed some light on whether this is an issue with a missing library that I have overlooked (and was already present on the N1) or a general incompatibility with the NS / 2.3.
I am going to do some hunting with google later, but if anyone has any thoughts or can point me to someone with some more knowledge on porting this over (someone who worked with the N1 port possible?) that would be helpful.
Yes this would be a great addition!
Sent from my Nexus S using XDA App
It's a bit of work, and it's not T-Mobile UMA, but it does a decent job for me:
http://forum.xda-developers.com/showthread.php?t=877879
IDtheTarget said:
It's a bit of work, and it's not T-Mobile UMA, but it does a decent job for me:
http://forum.xda-developers.com/showthread.php?t=877879
Click to expand...
Click to collapse
I had this going on my N1 - not really why I am looking for this (although a working solution for some things). It's a nice idea, but it uses a different phone number.
AT&T had a very nice network extender for the few times a year I am in areas with poor to no coverage. T-Mobile does not. The UMA/GAN wifi calling appears to be their answer, but it's available only on a few, select phones. If this could get ported over that would be resolved.
From the videos of Kineto demoing the SW they were running it on a Vibrant, so the hardware should be fine (assuming we have a proper APK and libraries).
Once I get some time I plan on looking into this. With a quick glance at the error it appears to be a library issue...though I'm not certain until I tear apart the apk!
Sent from my Nexus S using XDA App
ritcereal said:
Does anyone have the apk? I am interested in getting this running given the poor reception I tend to find.
Sent from my Nexus S using XDA App
Click to expand...
Click to collapse
Uploaded the APK and libraries taken from the N1 port.
I am leaning towards a missing library as well hopefully - I am going to dig into it tonight hopefully and see if I can get anywhere with it.
if anyone could get this app figured out, i would greatly appreciate the effort!
i have no cell coverage at my house. i have used uma for years, but just upgraded to the nexus s thinking it would have this app. now, i see it only works on the g2 and mt4. ugh...
b84cops said:
if anyone could get this app figured out, i would greatly appreciate the effort!
i have no cell coverage at my house. i have used uma for years, but just upgraded to the nexus s thinking it would have this app. now, i see it only works on the g2 and mt4. ugh...
Click to expand...
Click to collapse
agree on all parts.
looks like i will have to switch sims when i get home with nexus 1 until this can be resolved. sip calling does not work at all for me.
Thanks for tackling this krohnjw.
It's a little frustrating when people think that VOIP is the same thing.
Wifi Calling (UMA) effectively lets your phone act as if it were on its native network anywhere in the world, as long as you have a wifi signal. This is a godsend to those of us who travel internationally (or in places with poor reception).
Once this reaches N1 level stability, I'll probably switch over to the Nexus S.
Not looking great so far. Out of curiosity I fired it up in a few AVDs.
On the stock 2.2 AVD it loads fine and brings up the tutorial / connect prompt (clearly missing the needed libs for it to work though).
On the 2.3 AVD it FC with the same error >.> This leads me to believe that enough was changed in 2.3 with respect to AudioRecord that this may not work in its current incarnation.
I hope this isn't what we are running up against with changes from 2.2 - 2.3
The C++ libmedia library is not part of the public API. Some people use it, but this is highly discouraged because it might break on some devices and/or in a future Android release.
I developed an audio recording app, and trust me, audio support is very inconsistent across devices, it's very tricky, so IMO using libmedia directly is a bad idea.
Click to expand...
Click to collapse
In case anyone was wondering - pushing older versions of libmedia.so doesn't help anything It just results in a non booting device.
In this case wait for G2 to get Gingerbread? Hehe.
Anderdroid said:
In this case wait for G2 to get Gingerbread? Hehe.
Click to expand...
Click to collapse
I am guessing that will be awhile…
Unless someone else sees something I am missing I am quickly running out of ideas
Sent from my Nexus S using XDA App
krohnjw said:
I am guessing that will be awhile…
Unless someone else sees something I am missing I am quickly running out of ideas
Sent from my Nexus S using XDA App
Click to expand...
Click to collapse
well crap... i was really hoping for this to be able to work. hoping so much that i would actually pay for that app!
Once the G2 update to 2.3 drops it should hopefully get done if we can't use this apk with 2.3
Sent from my Nexus S using XDA App
Doesn't the Wifi Calling port require a custom kernel for the n1 to function? Additionally in krohnjw's zip file of the apk and other libraries we're missing the module '/system/lib/modules/kineto_gan.ko' from the n1 "bundle" that was last released. Has anyone been loading this module before launching the Wifi Calling application?
Other thought is that the htc ril that is bundled doesn't have similar functions, but not certain how I could find out.
Just some initial thoughts, going to keep looking into this!
Just thought I'd mention if it isn't known, the Vibrant froyo leaks also contain the WiFi calling.
Pulling apart the apk and the exceptions via logcat I found the offending call. Though I'm still trying to figure out what we need to replace. It is a library issue.
Code:
:try_start_a3
const-string v1, "kineto"
invoke-static {v1}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
:try_end_a8
.catch Ljava/lang/Exception; {:try_start_a3 .. :try_end_a8} :catch_a9
.line 60
:goto_a8
return-void
The part that stands out to me is invoke-static {v1} which would to me...translate into invote-static("kineto"), which of course it cannot find.
Though I'm confused by this as well, I'm not seeing any lib's that are included in the n1 port...I'm probably missing something.
ritcereal said:
Doesn't the Wifi Calling port require a custom kernel for the n1 to function? Additionally in krohnjw's zip file of the apk and other libraries we're missing the module '/system/lib/modules/kineto_gan.ko' from the n1 "bundle" that was last released. Has anyone been loading this module before launching the Wifi Calling application?
Other thought is that the htc ril that is bundled doesn't have similar functions, but not certain how I could find out.
Just some initial thoughts, going to keep looking into this!
Click to expand...
Click to collapse
That was the wrong zip or incomplete. I compiled a kernel with the kineto_gan module as statedvin the op. Works no problem (no errors in dmesg - success messages present) . Module loads successfully.
I'm running this kernel with the module loaded....doesn't make any difference. I can make it available if anyone would like to test.
Sent from my Nexus S using XDA App
Anderdroid said:
Just thought I'd mention if it isn't known, the Vibrant froyo leaks also contain the WiFi calling.
Click to expand...
Click to collapse
I just pulled that (and their version of libkineto.so) from the leaked image - same result, same error.
I'm curious, since wifi calling required libary files and all that jazz, wouldn't it be easier to just route the wifi calling apk through the SIP protocol already in place? That way you can avoid all the kernel and library "mess".
(not too knowledgeable on SIP and/or wifi calling).
Has anybody gotten Feint to load properly? All I get is endless "loading Feint" and I have to press the Back button to get to the game.
Came here to post this - works sometimes, not others. If no one has done so yet, I'll try getting a log cat later to see if I can figure out why, but it's probably a missing part of the OS.
I've actually engaged OpenFeint themselves through their support and they've been as helpful as they can be considering it isn't an officially supported device. Here's what I got.
My LogCat is attached which they requested and actually looked at.
Here's what the thread looks like.
Is there any chance you could tell me what other resources feint depends on? I know you can call resources from other apps so feint must require something that isn't available on the Nook Color's version of Android.
Feb-04 2011 13:08
Erwin
OpenFeint
Hi,
Feint depends web-related components such as webView and Apache...so if the Nook version doesn't have it it will error out.
-Erwin
Regards,
Erwin
Feb-04 2011 16:22
Tekchip
Odd, I know the NC has a Browser.apk installed. It's not clear if it's the original or not so that shouldn't be the problem. I don't recall seeing an org.apache.http but it must have one as the Android docs http://developer.android.com/reference/org/apache/http/package-descr.html indicate it's necessary for http communication to happen at all. Ideas? Is there anything I can run/do to gather more information about the problem?
Feb-04 2011 16:32
Tekchip
I see webView is a default function with in Android so if it's running android, and has a browser it should have webview. I imagine the hang up is on this Apache piece. Doing a quick search I found a package called org.apache.http. It appears to be a package but I don't find any apks out there. I also don't see an installed apache APK's on my phone(droid 1 running 2.3).
Feb-04 2011 16:42
Erwin
OpenFeint
Hi,
We'll take a look to see how it works but we currently don't support the device so there are no guarantees. Let me know if you need help with anything else.
-Erwin
Regards,
Erwin
Feb-04 2011 17:21
Erwin
OpenFeint
Can you connect it to a computer with the Android dev tools installed, run the Feint Game Spotlight app up until it hangs, and run adb logcat on a connected computer and send the output?
Regards,
Erwin
Feb-05 2011 07:49
Tekchip
I do have adb access to do that however I am out of town with nothing but my mobile available so I won't be able to get that info for you until 7 Feb.
Feb-05 2011 12:59
Tekchip
Here is the log cat from running Feint Game Spotlight. I captured this using a logcat app that has some settings to get more fine grained information so hopefully it didn't exclude anything important. I couldn't get it to replicate but earlier on I saw an error that indicated a cache directory could not be created. From there on it throws this set of errors that appear is if it's simply timing out. I'm going to try to re-create the original logcat entry I saw that in.
W/InputManagerService( 836): Window already focused, ignoring focus gain of: [email protected]
I/ActivityManager( 836): Starting activity: Intent { act=com.encore.intent.action.jump flg=0x14400000 cmp=com.bn.nook.applauncher/.jump.JumpActivity }
V/alogcat ( 8979): save instance
V/alogcat ( 8979): paused
D/DeviceManagerBroadcastReceiver( 1070): action (com.bn.devicemanager.ACTION_DEVICE_USAGE)
I/DeviceManagerHandler( 1070): HandleMessage(): msg.what (7)
I/ActivityManager( 836): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.aurorafeint.spotlight/.SpotlightActivity }
V/WebUI ( 7963): --- WebUI Bootup ---
V/WebUI ( 7963): Loading URL: file:///data/data/com.aurorafeint.spotlight/files/webui/index.html
W/InputManagerService( 836): Starting input on non-focused client [email protected] (uid=10002 pid=1398)
I/ActivityManager( 836): Displayed activity com.aurorafeint.spotlight/.SpotlightActivity: 1548 ms (total 3033 ms)
D/alogcat ( 8979): stopping ...
W/InputManagerService( 836): Window already focused, ignoring focus gain of: [email protected]
D/alogcat ( 8979): stopped
D/WindowManager( 836): interceptKeyTi code=4 down=true repeatCount=0 keyguardOn=false mHomePressed=false
D/WindowManager( 836): interceptKeyTi code=4 down=false repeatCount=0 keyguardOn=false mHomePressed=false
I/NotificationService( 836): enqueueToast pkg=org.jtb.alogcat [email protected] duration=1
D/alogcat ( 8979): stopping ...
D/alogcat ( 8979): starting ...
D/alogcat ( 8979): canceling periodic saves
V/alogcat ( 8979): started
V/alogcat ( 8979): resumed
D/dalvikvm( 8979): GC freed 2923 objects / 399720 bytes in 131ms
D/webviewglue( 7963): nativeDestroy view: 0x422cd0
D/dalvikvm( 7963): GC freed 4907 objects / 509912 bytes in 100ms
D/dalvikvm( 1398): GC freed 920 objects / 65960 bytes in 144ms
D/WifiService( 836): ACTION_BATTERY_CHANGED pluggedType: 0
D/DeviceManagerBroadcastReceiver( 1070): action (android.intent.action.BATTERY_CHANGED)
D/twcCurrentConditions( 1249): updateLoc:52002
D/twcCurrentConditions( 1249): no need to pull any data:52002
D/WifiService( 836): ACTION_BATTERY_CHANGED pluggedType: 0
D/DeviceManagerBroadcastReceiver( 1070): action (android.intent.action.BATTERY_CHANGED)
D/WindowManager( 836): interceptKeyTi code=82 down=true repeatCount=0 keyguardOn=false mHomePressed=false
D/WindowManager( 836): interceptKeyTi code=82 down=false repeatCount=0 keyguardOn=false mHomePressed=false
Feb-09 2011 08:27
Erwin
OpenFeint
Hi,
We couldn't find anything obvious from the log output so we'll need to get our hands on a device to check it out. Thanks for the info!
Regards,
Erwin
Feb-09 2011 10:26
Tekchip
Erwin,
I don't think the logcat app I used had the right filtering. I'm going to try to get it hooked up to my PC with real ADB access and do a raw logcat. Been busy lately so I had to try to use the shortcut method to get some output. I'll drop the info as soon as I get it. I appreciate your patience in working with me!
Brock
Feb-09 2011 10:45
Tekchip
Got it! This shows everything and it appears to be obvious where the problems are. I can't decipher it my self but some things are not able to be loaded etc. and it can't seem to locate the sdcard. I hope this helps!
logcat.txt
Feb-09 2011 13:38
Erwin
OpenFeint
Here's the latest on that from our Android guru:
So, the 'unable to access /sdcard' is actually expected, and doesn't indicate a problem...
However, the "unable to create webviewCache directory" is something I haven't seen before. That error message is actually coming from Android OS instead of our code. I've googled around a bit and it looks like this seems to happen on some rooted devices when they open the Browser. Most of the hits I'm finding are from the HTC Desire. Here is a quote from the only person I can find who seems to have fixed it:
"EDIT: Update - now fixed after repairing ext filesystem on the sdcard and repairing uid permissions from the receovery partition."
Hope that helps
Regards,
Erwin
Feb-09 2011 14:06
Erwin
OpenFeint
Google: 'fix apk uid permissions' in amonra recovery
That might help/might not...but keep in mind we can't officially support
Regards,
Erwin
Feb-09 2011 14:19
It looks like the red highlighted text is the fix. I haven't had a chance to try it using Amonra's recovery. I did try a fix permissions from clockwork but to no avail.
So has anyone had any luck with this or is feint working for most people with 1.1.0 stock rooted?
I have't tried logcat yet, but I did try CWM's permission fix, but still no go.
I've switched to the Moto X from Windows Phone 8, and after spending a few weeks de-bloating the damn thing I'm pretty happy with it.
However, there are two features I am sorely missing:
1. On my HTC 8X, whenever I had received a text message and I picked up the phone, the screen would automatically turn on. I know that stock the Moto X came with active notifications which is kind of the same, but I removed it because it meant I had to unlock the screen and then enter my PIN, as opposed to just entering my pin. Does Android have any built-in functionality to automatically turn on the display when a new text message comes in?
2. Similar to the previous point, when I got a new text message on Windows Phone 8, the sender and the first few words of the message would be briefly displayed across the top of the screen. Android doesn't seem to have that, but what would be really useful is if I could access my notifications drawer while the phone was still locked, so I could see who had emailed or messaged me, and then take the appropriate action. Is there a way to enable something similar to this?
1. No, you got rid of it.
2. It shows the preview of the text in active display, and in the notification window. The notification window isn't available on the lock screen when you have PIN lock enabled, due to privacy restrictions.
Sent from my XT1058 using XDA Premium 4 mobile app
Under active display options there is a checkbox for more privacy. Have you tried with that unchecked?
Sent from my XT1060 using Tapatalk
He got rid of AD...
Sent from my XT1058 using XDA Premium 4 mobile app
PityOnU said:
I've switched to the Moto X from Windows Phone 8, and after spending a few weeks de-bloating the damn thing I'm pretty happy with it.
However, there are two features I am sorely missing:
1. On my HTC 8X, whenever I had received a text message and I picked up the phone, the screen would automatically turn on. I know that stock the Moto X came with active notifications which is kind of the same, but I removed it because it meant I had to unlock the screen and then enter my PIN, as opposed to just entering my pin. Does Android have any built-in functionality to automatically turn on the display when a new text message comes in?
2. Similar to the previous point, when I got a new text message on Windows Phone 8, the sender and the first few words of the message would be briefly displayed across the top of the screen. Android doesn't seem to have that, but what would be really useful is if I could access my notifications drawer while the phone was still locked, so I could see who had emailed or messaged me, and then take the appropriate action. Is there a way to enable something similar to this?
Click to expand...
Click to collapse
I'd advise installing Go SMS, it gives an option to turn on the screen for an incoming message, and uncheck messaging/go sms under Active Display.
GandalfTehGray said:
I'd advise installing Go SMS, it gives an option to turn on the screen for an incoming message, and uncheck messaging/go sms under Active Display.
Click to expand...
Click to collapse
you can try the dynamicnotifications app from the play store. it has more features than active display but i havent tested it on the moto x.
It seems like the features you desire may be best supplied by active display. I've really been enjoying that feature on my Moto-X.
On my previous phone, I used handcent as a text app, and it has a setting that allows new incoming texts to display in a pop up window. I eventually shut that feature off, as texts would pop up when the phone was in my pocket, and then the screen was active, and all sorts of undesirable screen press issues would happen.
To the OP, I came from an iPhone which worked the same way. I had a nexus 5 first which was a complete PITA, the moto x is better. Turn the Active Display back on!!
sent from my VZW 32GB moto maker X on 4.4
The latest update to "active notificatioins" should address your concern
Motorola just published an update to the "active notifications" app that addressed your concern specifically. Many commands now work without touching the phone. additionally, if you are using the "pin" unlock function, which your post indicates you are, you can even speak your pin to access the remaining functions. As I understand the update, the only actions that now require a pin are ones that show your personal information. but being able to speak your pin is a nice feature when driving if your car stereo does not have bluetooth authentication.
Wow, thanks for all the great suggestions, guys! I never expected this thread to get this much attention.
After using the phone for the past week or so, I find that I am in agreement with the majority of you that I should keep Active Display on my phone. I am amazed that a feature as basic as this had not already been built into the functionality of the base Android OS.
Would anyone happen to know the .apk's needed to get Active Display back up and running on my Moto X? I have backups of all the system apps, but am not sure which files I should restore. I know that "AonInt.apk" is part of, but not the whole, story.
stevetsimmons.com said:
Motorola just published an update to the "active notifications" app that addressed your concern specifically. Many commands now work without touching the phone. additionally, if you are using the "pin" unlock function, which your post indicates you are, you can even speak your pin to access the remaining functions. As I understand the update, the only actions that now require a pin are ones that show your personal information. but being able to speak your pin is a nice feature when driving if your car stereo does not have bluetooth authentication.
Click to expand...
Click to collapse
That's Touchless Control, not Active Notifications.
PityOnU said:
Wow, thanks for all the great suggestions, guys! I never expected this thread to get this much attention.
After using the phone for the past week or so, I find that I am in agreement with the majority of you that I should keep Active Display on my phone. I am amazed that a feature as basic as this had not already been built into the functionality of the base Android OS.
Would anyone happen to know the .apk's needed to get Active Display back up and running on my Moto X? I have backups of all the system apps, but am not sure which files I should restore. I know that "AonInt.apk" is part of, but not the whole, story.
Click to expand...
Click to collapse
You got rid of the app completely? You know you could have just disabled Active Notifications from the settings menu, right?
freak4dell said:
You got rid of the app completely? You know you could have just disabled Active Notifications from the settings menu, right?
Click to expand...
Click to collapse
Right, but I wanted it removed completely, so I wiped it out. Mobile devices have limited resources, and I want to conserve mine as much as possible.
In any case, I've found that
Code:
AonInt.apk
&
Code:
AonInt.odex
are the system service that runs in the background for catching notifications, and
Code:
Aon.apk
and
Code:
Aon.odex
are the actual functional parts of the notification screen.
It's still suffering from an error and force quitting, though. Here is the dump from DDMS:
Code:
12-23 18:26:40.726: E/qdexternal(283): writeHPDOption: state file '/sys/devices/virtual/graphics/fb-1/hpd' not found : ret-1 err str: No such file or directory
12-23 18:26:40.888: E/AndroidRuntime(12891): FATAL EXCEPTION: main
12-23 18:26:40.888: E/AndroidRuntime(12891): Process: com.motorola.aon, PID: 12891
12-23 18:26:40.888: E/AndroidRuntime(12891): java.lang.RuntimeException: Unable to create service com.motorola.aon.pd.AonServiceBreath: java.lang.SecurityException: Not allowed to bind to service Intent { act=com.motorola.aon.env.INTERFACE pkg=com.motorola.aon.env }
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2590)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ActivityThread.access$1700(ActivityThread.java:139)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1493)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.os.Handler.dispatchMessage(Handler.java:102)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.os.Looper.loop(Looper.java:137)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ActivityThread.main(ActivityThread.java:5083)
12-23 18:26:40.888: E/AndroidRuntime(12891): at java.lang.reflect.Method.invokeNative(Native Method)
12-23 18:26:40.888: E/AndroidRuntime(12891): at java.lang.reflect.Method.invoke(Method.java:515)
12-23 18:26:40.888: E/AndroidRuntime(12891): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
12-23 18:26:40.888: E/AndroidRuntime(12891): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
12-23 18:26:40.888: E/AndroidRuntime(12891): at dalvik.system.NativeStart.main(Native Method)
12-23 18:26:40.888: E/AndroidRuntime(12891): Caused by: java.lang.SecurityException: Not allowed to bind to service Intent { act=com.motorola.aon.env.INTERFACE pkg=com.motorola.aon.env }
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1701)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ContextImpl.bindService(ContextImpl.java:1665)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.content.ContextWrapper.bindService(ContextWrapper.java:517)
12-23 18:26:40.888: E/AndroidRuntime(12891): at com.motorola.aon.AonService.requestRebind(AonService.java:407)
12-23 18:26:40.888: E/AndroidRuntime(12891): at com.motorola.aon.AonService.onCreate(AonService.java:443)
12-23 18:26:40.888: E/AndroidRuntime(12891): at com.motorola.aon.pd.AonServiceBreath.onCreate(AonServiceBreath.java:183)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2580)
12-23 18:26:40.888: E/AndroidRuntime(12891): ... 10 more
Any ideas what I am still missing? I think it's a provider of some sort from Motorola specific security settings, but I'm not certain. I'll have to dig around some more...
I'm not sure if this helps, but Motorola posted all of their special features to the play store. Also regarding the unlock, you can create a trusted bluetooth device that will disable your pin. Basically if your phone is in range of said device (car, headset, whatever), you don't need to enter a pin.
PityOnU said:
Right, but I wanted it removed completely, so I wiped it out. Mobile devices have limited resources, and I want to conserve mine as much as possible.
In any case, I've found that
Code:
AonInt.apk
&
Code:
AonInt.odex
are the system service that runs in the background for catching notifications, and
Code:
Aon.apk
and
Code:
Aon.odex
are the actual functional parts of the notification screen.
It's still suffering from an error and force quitting, though. Here is the dump from DDMS:
Code:
12-23 18:26:40.726: E/qdexternal(283): writeHPDOption: state file '/sys/devices/virtual/graphics/fb-1/hpd' not found : ret-1 err str: No such file or directory
12-23 18:26:40.888: E/AndroidRuntime(12891): FATAL EXCEPTION: main
12-23 18:26:40.888: E/AndroidRuntime(12891): Process: com.motorola.aon, PID: 12891
12-23 18:26:40.888: E/AndroidRuntime(12891): java.lang.RuntimeException: Unable to create service com.motorola.aon.pd.AonServiceBreath: java.lang.SecurityException: Not allowed to bind to service Intent { act=com.motorola.aon.env.INTERFACE pkg=com.motorola.aon.env }
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2590)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ActivityThread.access$1700(ActivityThread.java:139)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1493)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.os.Handler.dispatchMessage(Handler.java:102)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.os.Looper.loop(Looper.java:137)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ActivityThread.main(ActivityThread.java:5083)
12-23 18:26:40.888: E/AndroidRuntime(12891): at java.lang.reflect.Method.invokeNative(Native Method)
12-23 18:26:40.888: E/AndroidRuntime(12891): at java.lang.reflect.Method.invoke(Method.java:515)
12-23 18:26:40.888: E/AndroidRuntime(12891): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
12-23 18:26:40.888: E/AndroidRuntime(12891): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
12-23 18:26:40.888: E/AndroidRuntime(12891): at dalvik.system.NativeStart.main(Native Method)
12-23 18:26:40.888: E/AndroidRuntime(12891): Caused by: java.lang.SecurityException: Not allowed to bind to service Intent { act=com.motorola.aon.env.INTERFACE pkg=com.motorola.aon.env }
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1701)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ContextImpl.bindService(ContextImpl.java:1665)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.content.ContextWrapper.bindService(ContextWrapper.java:517)
12-23 18:26:40.888: E/AndroidRuntime(12891): at com.motorola.aon.AonService.requestRebind(AonService.java:407)
12-23 18:26:40.888: E/AndroidRuntime(12891): at com.motorola.aon.AonService.onCreate(AonService.java:443)
12-23 18:26:40.888: E/AndroidRuntime(12891): at com.motorola.aon.pd.AonServiceBreath.onCreate(AonServiceBreath.java:183)
12-23 18:26:40.888: E/AndroidRuntime(12891): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2580)
12-23 18:26:40.888: E/AndroidRuntime(12891): ... 10 more
Any ideas what I am still missing? I think it's a provider of some sort from Motorola specific security settings, but I'm not certain. I'll have to dig around some more...
Click to expand...
Click to collapse
Hello,
I'm trying to develop an Xposed module that will allow me to change the carrier text of the device on demand (in reality, this will happen when the music track is changed).
I'm already using a BroadcastReceiver to listen to track-changed events from various media players, but I want to change the carrier text of the device when I receive such an intent.
However, I wasn't able to find how to do it using Xposed, as it only allows me to hook methods before/after they execute (feel free to correct me if I'm wrong of course), which isn't exactly what I need.
I went through the source code of XBlastTools for changing the carrier text, but wasn't able to conclude much for my needs.
Please advise in setting up a method that will basically get a String and replace the carrier text with that given String (at any given time). Something like this:
Code:
public void setName(String name) {
// TODO implement
}
Normally, you'd put your BroadcastReceiver somewhere you can access the carrier TextView from. You'd then be able to edit it when you want normally. In this case it looks like there's an easier way, though.
Here's how I'd do it: register a BroadcastReceiver in CarrierText's constructor. In that receiver, get and save the text you want as a class variable. Then hook getCarrierTextForSimState and make it return that variable.
http://grepcode.com/file_/repositor...licy/impl/keyguard/CarrierText.java/?v=source
GermainZ said:
Normally, you'd put your BroadcastReceiver somewhere you can access the carrier TextView from. You'd then be able to edit it when you want normally. In this case it looks like there's an easier way, though.
Here's how I'd do it: register a BroadcastReceiver in CarrierText's constructor. In that receiver, get and save the text you want as a class variable. Then hook getCarrierTextForSimState and make it return that variable.
http://grepcode.com/file_/repositor...licy/impl/keyguard/CarrierText.java/?v=source
Click to expand...
Click to collapse
That's a good way of doing things if it weren't for the "on demand" requirement.
Basically, what I want to do is set the carrier text to a different one whenever the onReceive() of the BroadcastReceiver is called, so I can't just hook into getCarrierTextForSimState() and change that, because it probably won't be called whenever I need.
benthe said:
That's a good way of doing things if it weren't for the "on demand" requirement.
Basically, what I want to do is set the carrier text to a different one whenever the onReceive() of the BroadcastReceiver is called, so I can't just hook into getCarrierTextForSimState() and change that, because it probably won't be called whenever I need.
Click to expand...
Click to collapse
Then call the setText method from your receiver as well.
GermainZ said:
Then call the setText method from your receiver as well.
Click to expand...
Click to collapse
By the way, I think the class you linked to only affects the carrier name that appears on the lockscreen.
I'm not that interested in this carrier text to be honest, and basically want to set the carrier text whereever it may be the class you linked to is pulling it from.
The main idea behind my module is that I have a BT headset in my car that can only display the carrier name & bluetooth name of my phone, but I want it to display the currently playing track. So I want to change the bluetooth name of the phone to the artist of the currently playing song (almost works at this point, just have some crashes I need to deal with), and set the carrier name to the name of the song that's currently playing.
However, I didn't manage to do that later. I tried various methods, but no luck so far.
EDIT: I managed to get everything working for the most part (I didn't test it with the actual BT headset, but both the BT and carrier names change when changing tracks).
However, I'm getting 2 error messages constantly as soon as I start playback:
1. Unfortunately, the process android.process.acore has stopped.
2. Unfortunately, the process android.process.media has stopped.
Any ideas on how to fix those two? What's causing them seems to be the changing of the bluetooth name (although it does work, just shows me those two crash errors time after time). Here's the code for my bluetooth manager.
Disabling the "setName" call of the BluetoothAdapter fixes the crashes (but obviously doesn't change the BT name of the device, which defeats the purpose).
Also, replacing the said call with:
Code:
XposedHelpers.callMethod(mLocalAdapter, "setName", name);
fixes this, but I prefer to do things without using reflection and hooking if I can (which is possible in this case), so it seems like it's just a permission issue.
It might be because of a permission problem:
I put together a quick Android app to simulate changing the BT name in the same way, and it crashed without adding:
Code:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
to the manifest file.
However, if I recall correctly, Xposed modules run in root mode, so they shouldn't need permissions to do whatever they please. Also, I tried adding the above permissions to my module, but it still crashes.
Any help on the matter would be most appreciated.
I just checked which class XBlastTools hooked and assumed that's it. If not, look for the right one or see the first part of post #2.
About the crashes: check your logcat.
Xposed modules do not run as root, they'll have the same permissions as the process they're in (the app you're hooking). You can hook anything, though (including Android system methods).
GermainZ said:
I just checked which class XBlastTools hooked and assumed that's it. If not, look for the right one or see the first part of post #2.
About the crashes: check your logcat.
Xposed modules do not run as root, they'll have the same permissions as the process they're in (the app you're hooking). You can hook anything, though (including Android system methods).
Click to expand...
Click to collapse
Thanks for the help.
I got the carrier name part working perfectly now (or so it seems at least, I'll have to check later in the actual car BT headset).
The only part that remains to make the module fully functional is the Bluetooth one. I checked my logcat, and like I said in my previous post - I think it's a permission issue, which is rather weird - as I set both permissions needed for Bluetooth for the module. Keep in mind that the part that's running the bluetooth code in the app isn't hooking anything, it runs on the module itself as far as I can tell. I'm calling it on the onReceive callback from the BroadcastReceiver (I don't think the app that send the broadcast has bluetooth permissions, but that shouldn't matter, should it?).
benthe said:
Thanks for the help.
I got the carrier name part working perfectly now (or so it seems at least, I'll have to check later in the actual car BT headset).
The only part that remains to make the module fully functional is the Bluetooth one. I checked my logcat, and like I said in my previous post - I think it's a permission issue, which is rather weird - as I set both permissions needed for Bluetooth for the module. Keep in mind that the part that's running the bluetooth code in the app isn't hooking anything, it runs on the module itself as far as I can tell. I'm calling it on the onReceive callback from the BroadcastReceiver (I don't think the app that send the broadcast has bluetooth permissions, but that shouldn't matter, should it?).
Click to expand...
Click to collapse
Remember that all hooked code does *not* run as your app so your app's permissions don't matter here. Hooked code runs as if it was in the hooked process.
Can't say much else without the actual error.
GermainZ said:
Remember that all hooked code does *not* run as your app so your app's permissions don't matter here. Hooked code runs as if it was in the hooked process.
Can't say much else without the actual error.
Click to expand...
Click to collapse
But this code does run on the module.
In my main class (that implements IXposedHookLoadPackage), I'm initializing a class (that derives from Object, and doesn't implement any interfaces), in which I register the BroadcastReceiver (on the context of the application, via AndroidAppHelper.currentApplication().getApplicationContext()), when the onReceive() method is called in the BroadcastReceiver I call the setName() method of the BluetoothAdapter.
If it doesn't run on the module application, on what application does it run on?
And here's the error:
E/AndroidRuntime( 5063): FATAL EXCEPTION: main
E/AndroidRuntime( 5063): Process: com.maxmpz.audioplayer, PID: 5063
E/AndroidRuntime( 5063): java.lang.RuntimeException: Error receiving broadcast Intent { act=com.maxmpz.audioplayer.TRACK_CHANGED flg=0x10 (has extras) } in com.bengr.MusicMetadataForLegacyDevices.Musi
[email protected]
E/AndroidRuntime( 5063): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:785)
E/AndroidRuntime( 5063): at android.os.Handler.handleCallback(Handler.java:733)
E/AndroidRuntime( 5063): at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime( 5063): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 5063): at android.app.ActivityThread.main(ActivityThread.java:5144)
E/AndroidRuntime( 5063): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 5063): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime( 5063): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
E/AndroidRuntime( 5063): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
E/AndroidRuntime( 5063): at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
E/AndroidRuntime( 5063): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 5063): Caused by: java.lang.SecurityException: Need BLUETOOTH ADMIN permission: Neither user 10128 nor current process has android.permission.BLUETOOTH_ADMIN.
E/AndroidRuntime( 5063): at android.os.Parcel.readException(Parcel.java:1465)
E/AndroidRuntime( 5063): at android.os.Parcel.readException(Parcel.java:1419)
E/AndroidRuntime( 5063): at android.bluetooth.IBluetooth$Stub$Proxy.setName(IBluetooth.java:783)
E/AndroidRuntime( 5063): at android.bluetooth.BluetoothAdapter.setName(BluetoothAdapter.java:660)
E/AndroidRuntime( 5063): at com.bengr.MusicMetadataForLegacyDevices.BluetoothManager.setName(BluetoothManager.java:50)
E/AndroidRuntime( 5063): at com.bengr.MusicMetadataForLegacyDevices.MusicListener.updateRemoteFieldsFromLocalFields(MusicListener.java:150)
E/AndroidRuntime( 5063): at com.bengr.MusicMetadataForLegacyDevices.MusicListener.setTrackMetadata(MusicListener.java:144)
E/AndroidRuntime( 5063): at com.bengr.MusicMetadataForLegacyDevices.MusicListener.access$4(MusicListener.java:138)
E/AndroidRuntime( 5063): at com.bengr.MusicMetadataForLegacyDevices.MusicListener$1.onReceive(MusicListener.java:105)
E/AndroidRuntime( 5063): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:775)
E/AndroidRuntime( 5063): ... 10 more
W/ActivityManager( 935): Force finishing activity com.maxmpz.audioplayer/.PlayerUIActivity
W/ActivityManager( 935): Force finishing activity com.maxmpz.audioplayer/.PlayListActivity
D/LogFetchServiceManager( 6618): Received entry added
W/ActivityManager( 935): Activity pause timeout for ActivityRecord{42d72640 u0 com.maxmpz.audioplayer/.PlayerUIActivity t4 f}
I/Timeline( 1490): Timeline: Activity_idle id: [email protected] time:183794
I/Timeline( 935): Timeline: Activity_windows_visible id: ActivityRecord{42ca81c8 u0 com.teslacoilsw.launcher/com.android.launcher2.Launcher t1} time:184001
W/System.err( 5009): LOG: Warning Unknown dock level ignored.
Click to expand...
Click to collapse
Also, here's the project (together with the PowerAMP API project, as it depends on it, and the Android tester application I made to simulate changing the bluetooth name on a "regular" project): link, if that's of any help.
I can't check the project right now, but just to make sure I understand correctly, you're doing something like this:
1- You're hooking the class in which the carrier text is set and registering a BroadcastReceiver there.
2- From your app, you're sending a broadcast whenever you want (possibly with the text you want in the extras).
3- In the BroadcastReceiver's onReceive method, you're setting the carrier text to the value you just received.
If that's what you're doing, it seems fine to me. For the permissions issue, I suppose adding the required permission to your manifest will fix that.
GermainZ said:
I can't check the project right now, but just to make sure I understand correctly, you're doing something like this:
1- You're hooking the class in which the carrier text is set and registering a BroadcastReceiver there.
2- From your app, you're sending a broadcast whenever you want (possibly with the text you want in the extras).
3- In the BroadcastReceiver's onReceive method, you're setting the carrier text to the value you just received.
If that's what you're doing, it seems fine to me. For the permissions issue, I suppose adding the required permission to your manifest will fix that.
Click to expand...
Click to collapse
Not really. The carrier text has nothing to do with the issue anymore. Even if I removed all the code that has to do with the carrier text, and left the bluetooth part alone - the issue would persist.
What I'm doing is this:
1- Have a regular class (meaning it derives from Object directly, and doesn't implement any interfaces).
2- In the said class I set up a BroadcastReceiver (using the application context, which I got via AndroidAppHelper.currentApplication().getApplicationContext(), which is static and can be called from anywhere).
3- When the BroadcastReceiver's onReceive() is called (again, in the previously mentioned class), I call BluetoothAdapter.getDefaultAdapter().setText with the text I want to set as the phone's BT name.
4- Error messages pop-up, and the error I attached in my previous reply shows up on the logcat. (this step occurs when the onReceive is called, which calls the setText).
When I comment out the setText() call, no errors occur (but the BT name doesn't change, obviously).
It's important to note that I did add the needed permissions to my manifest:
AndroidManifest.xml:
Code:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bengr.musicmetadateforlegacydevices"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data android:name="xposedmodule" android:value="true"/>
<meta-data android:name="xposedminversion" android:value="50"/>
<meta-data android:name="xposeddescription" android:value="Changes the device's carrier and bluetooth names to display the currently playing track."/>
</application>
</manifest>
So you're not using Xposed for anything anymore? Sorry but I'm a bit confused now.
GermainZ said:
So you're not using Xposed for anything anymore? Sorry but I'm a bit confused now.
Click to expand...
Click to collapse
For what I'm doing right now? Not really.
My module is composed of two parts - one for changing the BT name (which doesn't require private calls, and can be done via Android's public API), and one for changing the carrier name (which does require Xposed, as I'm doing some private calls etc).
The carrier name part of the module works perfectly right now.
However, the Bluetooth one doesn't; and crashes as mentioned before, and throws a permission error. However, on a side-project that's just a regular Android app, that also changes the BT name this works (keep in mind that in both the side-project and the Xposed module project I added both Android bluetooth permissions).