Changing where special://masterprofile/ redirects to?
#16
(2013-03-11, 16:08)kemonine96 Wrote:
(2013-03-10, 23:31)cyberguerilla Wrote: bump

Real life has tripped me up some. I'll take a closer look at the code you posted soon. Feel free to PM me if I don't have something posted by the end of the week.

(2013-03-19, 16:15)kemonine96 Wrote:
(2013-03-17, 14:22)cyberguerilla Wrote: Thanks, eagerly awaiting anything you find.

So far I've found nothing. I was poking at this yesterday some and I can't seem to find the spot where it loses the SD Card location.


Anyone willing to post the output of "env" from a command line (on device) on a working and non-working ROM? That might help me find the right spot to go digging.


I am posting the env settings that do not work at the bottom of this post.

That being said, I am not sure if looking at losing SD Card location is necessarily the problem here. I have run some tests before:

SD Card on, XBMC app installed on the card ---- special://home and special://masterprofile mapped to /.xbmc/..... so failed to start.
SD Card on, XBMC app installed on device local memory ---- special://home and special://masterprofile mapped to /.xbmc/..... so failed to start.


To me, I don't care if we lose the SD Card or not. As long as special://home and special://masterprofile are mapped to a non-root path that Android device user actually have access to without rooting, then it's fine. Maybe looking at it from another perspective: how much do we know, in the code, where special://home and special://masterprofile are mapped to?



Does not work

uid=10042 gid=10042 groups=1015,3003@android:/mnt/sdcard $ env

_=/usr/bin/env
ANDROID_BOOTLOGO=1
ANDROID_PROPERTY_WORKSPACE=8,32768
LOOP_MOUNTPOINT=/mnt/obb
PS1=$(precmd)$USER@$HOSTNAME:${PWD:-?} $
PATH=/bin:/usr/bin:/usr/sbin:/system/bin:/system/xbin
USER=uid=10042 gid=10042 groups=1015,3003
EXTERNAL_STORAGE=/mnt/sdcard
ANDROID_DATA=/data
RANDOM=466
TERM=screen
SHELL=/system/bin/sh
MKSH=/system/bin/sh
HOME=/
LD_LIBRARY_PATH=/vendor/lib:/system/lib
ASEC_MOUNTPOINT=/mnt/asec
HOSTNAME=android
BOOTCLASSPATH=/system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/filterfw.jar:/system/framework/wmt.applib.jar:/data/wmt/framework/metro8lib.jar
ANDROID_ROOT=/system
ANDROID_ASSETS=/system/app
ANDROID_SOCKET_zygote=9
Reply
#17
kemonine96, any luck finding some of the issues with this? If need be and it helps I would be willing to provide remote access to a device that has the problem (for instance via this app)?

Just let me know..

-Snotboble
Reply
#18
The env output looks interesting and I think at least explains why the mappings for special://home and special://masterprofile have gone wrong.

For the record, the offical XBMC documentation states: special://masterprofile - XBMC's main configuration directory. Normally located at special://home/userdata....

So, fixing where special://home is mapped to would likely mean fixing where special://masterprofile points to.

Looking at the env output, in the case where it works, we have

HOME=/data (not just snotboble's env output but I noticed that in my XBMC capable tablet too)

In the env output for the devices where XBMC fail to run, we have

HOME=/



I bet that if we can set the HOME environment variable, we're be fine.
Question is, can we accomplish this without rooting?

Terminal emulator with the start am -n org.xbmc.xbmc. Huh?? command?

Some tweaking with the Android App "Script Manager" to run a script that set the environment variable first, then run the App?


On the flip side, are there any files that should have been residing in the special://home directory that were not because the HOME environment variable is not set correctly?
Reply
#19
Proposed solution: will try it as soon as I have access to device but think this maybe it...

make sure XBMC is not running

Go to terminal emulator
run the following

Set HOME=/data

[enter]

start am -n .org.xbmc.xbmc/.Splash

start am -n .org.xbmc.xbmc/android.app.NativeActivity
Reply
#20
(2013-04-12, 17:31)cyberguerilla Wrote: Proposed solution: will try it as soon as I have access to device but think this maybe it...

Set HOME=/data
start am -n .org.xbmc.xbmc/.Splash
start am -n .org.xbmc.xbmc/android.app.NativeActivity

I will try this later today and let you know how it fares..

-Snotboble
Reply
#21
Well, so far no luck.
What I did was this:
export HOME=/data (otherwise it will forget it instantly)
am start -a android.intent.action.MAIN -n org.xbmc.xbmc/android.app.NativeActivity
If I do this as a normal user it complains about permissions. If I do this as root, the screen goes black for a second, then returns to the terminal again.

kemonine96, have you had a bit of time to look at this? Will you get it? Pleeeeease? Smile
Reply
#22
Ah snotboble, thanks for letting me know the command. On the tablet where I was able to run XBMC as usual, the command you posted would have also fired up XBMC normally.

On the problem device did you get this error?

Starting: Intent { act=android.intent.action.MAIN cmp=org.xbmc.xbmc/android.app.NativeActivity }
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=org.xbmc.xbmc/android.app.NativeActivity } from null (pid=1581, uid=10042) not exported from uid 10050
at android.os.Parcel.readException(Parcel.java:1327)
at android.os.Parcel.readException(Parcel.java:1281)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1631)
at com.android.commands.am.Am.runStart(Am.java:433)
at com.android.commands.am.Am.run(Am.java:107)
at com.android.commands.am.Am.main(Am.java:80)
at com.android.internal.os.RuntimeInit.finishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:238)
at dalvik.system.NativeStart.main(Native Method)http://forum.xbmc.org/newreply.php?tid=157721
1|uid=10042 gid=10042 groups=1015,3003@android:/ $ script

I've read about this error online and it appears that's due to something in the application. Take for instance, what people say here in http://bit.ly/YCkcoQ

[Android] java.lang.SecurityException: Permission Denial – when launching Activity

Posted by Ktoso on 12/10/2011 – 12:36
Just a quick tip if you ever happen to run into such an error:

Launching application: pl.project13.kanbanery/pl.project13.kanbanery
.ui.activities.InitActivity.

DEVICE SHELL COMMAND: am start -D -n "pl.project13.kanbanery/pl.proj
ect13.kanbanery.ui.activities.InitActivity"

Starting: Intent { cmp=pl.project13.kanbanery/.ui.activities.InitAct
ivity }

java.lang.SecurityException: Permission Denial: starting Intent { flg
=0x10000000 cmp=pl.project13.kanbanery/.ui.activities.InitActivity } from null (pid=13301, uid=2000) not exported from uid 10061
The error is on your side and it’s a super simple one. You have an activity defined two times in your AndroidManifest.xml. Just remove the duplicate to get things rolling again ;-)




So to me all it takes is for some developers in the XBMC/android to look into the project and make some code checkups. Would that be hard to find?.
Reply

Logout Mark Read Team Forum Stats Members Help
Changing where special://masterprofile/ redirects to?1