I apologize in advance, because this is surely a question that has been asked and answered before but it isn't in the FAQs and I lack the vocabulary to search for it.
After installing Xposed and getting the clock demo working, I made a very simple module that just prints out package names as they are loaded.
Code:
public class Tutorial implements IXposedHookLoadPackage {
public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
XposedBridge.log("Loaded app: " + lpparam.packageName);
}
}
When running it on an emulated Google Nexus 5 with 5.1 (API 22) via Genymotion, it successfully logs a bunch of com.android/google things as they load, but not other applications. For instance, opening the Cyanogenmod File Manager or Final Fantasy Brave Exvius don't lead to anything being logged. When I decompile their APKs to smali, I see a lot of class names outside of the com.google/android family.
Why can't I see those apps in Xposed? Does it only hook android API functions?
Sorry, but does anyone have an idea why this might happen?
There's nothing wrong, also if your code is logging yet some applications this is a clear sign that it works. Maybe you can hook the oncreate method and log from here as an alternative.
Massi-X said:
There's nothing wrong, also if your code is logging yet some applications this is a clear sign that it works. Maybe you can hook the oncreate method and log from here as an alternative.
Click to expand...
Click to collapse
Okay, so I would use something like this code to scan the methods of loaded packages and hook onCreate methods?
github.com/rovo89/XposedBridge/issues/151
Sorry, it won't let me post a link.
Byrth said:
Okay, so I would use something like this code to scan the methods of loaded packages and hook onCreate methods?
github.com/rovo89/XposedBridge/issues/151
Sorry, it won't let me post a link.
Click to expand...
Click to collapse
I was thinking about hooking all the oncreate methods in every PKG (catching the error if not exists) and logging the PKG name. Another thing that comes to my mind: there where no errors in the log? The packages you want to log were installed before the reboot or you have installed after the module was active?
Related
First you need to have giveen's original port installed: http://goo.im/devs/giveen/jellystreak (via the old thread: http://forum.xda-developers.com/showthread.php?t=2130081). The most important thing this does is installing the TWRP "recovery" bootmenu thingy. You can use it when powering on/restarting the dell streak 7 and then keeping power+volup pressed and then choosing "install update from sdcard" or so.
With AOKP there is one install image that wipes /system and an ota update. I have not tested the ota update.
Download for the AOKP 4.2 build for the Dell Streak 7: http://w3studi.informatik.uni-stuttgart.de/~haagch/aokp/
The non-ota update wipes /system. So you have to reinstall gapps every time too, preferably before rebooting (android deletes settings for apps that are not installed I think).
The "official" gapps package uses neon instructions that don't work on tegra2. You'll see the keyboard, tts, etc. crashing all the time. "tonyp" has created a gapps package that uses "old" libraries that work without neon instructions. So you should use this instead of the official gapps:
Download for non-neon gapps: http://goo.im/devs/tonyp/non-neon-gapps
Gesture typing on the keyboard doesn't seem to work for me, but tts works and it doesn't seem to be crashing.
Known issues for me:
[*]sensors don't work: rotation, accelerometer, gps (I think), magnet field (Sensor driver is sensors.p3.so for now, maybe later giveen gets open source drivers to work)
headphone jack doesn't mute/transfer for some headsets like ones with built in microphones
bluetooth keyboard
Performance problems. Especially when the ram gets full. You can use a ram manager like https://play.google.com/store/apps/details?id=com.jrummy.apps.memory.manager with the Aggressive or Extreme preset to make that problem go away with the cost of background apps being killed very quickly.
Here is the repository: https://github.com/ChristophHaag/android_device_dell_streak7
And here is how to build it on Archlinux:
AOKP: https://gist.github.com/ChristophHaag/6334554
Cyanogenmod: https://gist.github.com/ChristophHaag/6078249
I'm new to android but maybe some other people know something, so I post whatever I come about. Maybe someone else wants to get started too and finds this helpful.
If you want to engage in bug finding and fixing yourself:
Remote debugging c works like this:
On the android device you do
Code:
gdbserver --remote-debug :5039 --attach 1
Which will attach gdbserver to the process with pid 1 and listen on port 5039 on all interfaces.
For a gui debugger I tried nemiver:
For $ANDROID I use the path where the cyanogenmod was checked out.
Code:
nemiver --remote=<STREAK7-IP>:5039 --gdb-binary=$ANDROID/android/system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gdb --solib-prefix=$ANDROID/android/system/out/target/product/streak7/symbols/ $ANDROID/android/system/out/target/product/streak7/symbols/init
And in edit-preferences for sources I added some paths like symbols/, symbols/system/lib and the android/system directory.
There's also a statically compiled gdb that you can use over ssh or so: http://dan.drown.org/android/howto/gdb.html
Obsolete first look into the CyanogenMod adb bug:
I think the problem is in line 1068 in init.c
Code:
if (!action_queue_empty() || cur_action)
timeout = 0;
each time I looked when it comes there the cur_action->name was "property:sys.usb.config=none".
Maybe it is connected with the adb issue. When I googled for the
Code:
E/UsbDebuggingManager( 367): Communication error:
E/UsbDebuggingManager( 367): java.io.IOException: No such file or directory
E/UsbDebuggingManager( 367): at android.net.LocalSocketImpl.connectLocal(Native Method)
E/UsbDebuggingManager( 367): at android.net.LocalSocketImpl.connect(LocalSocketImpl.java:238)
E/UsbDebuggingManager( 367): at android.net.LocalSocket.connect(LocalSocket.java:108)
E/UsbDebuggingManager( 367): at com.android.server.usb.UsbDebuggingManager.listenToSocket(UsbDebuggingManager.java:79)
E/UsbDebuggingManager( 367): at com.android.server.usb.UsbDebuggingManager.run(UsbDebuggingManager.java:115)
E/UsbDebuggingManager( 367): at java.lang.Thread.run(Thread.java:856)
issue I found surprisingly many people having issues with this, but few answers.
But I also found e.g. this: https://gist.github.com/steven676/5...c-remove-obsolete-ro.debuggable-1-trigg.patch
so the problem may be in https://github.com/ChristophHaag/an...lob/master/prebuilts/root/init.streak7.usb.rc
but I didn't have time to really read documentation to that.
I think this file complements $ANDROID/system/core/rootdir/init.usb.rc
I'll either play around with that or I'll add debug output in android.net.LocalSocketImpl.connect(LocalSocketImpl.java:238)
Code:
connectLocal(fd, address.getName(), address.getNamespace().getId());
Then I would at least know what it's trying to do and it would get easier.
Many of the results I saw from googling mentioned that it might have to do with netd.
On the streak 7 I get this:
Code:
cat /dev/socket/netd
cat: can't open '/dev/socket/netd': No such device or address
I'm not sure if this is how it should behave...
An observation is that adbd run from a command line seems to start without an issue and listens on a port specified with
Code:
setprop service.adb.tcp.port 5555
but the access over adb connect <STREAK7-IP> does only say "unauthorized". And "start adbd" does nothing. None of the programs seem to have --help or -h, so I have to look closer into whether they can be started directly.
I'll change "[ro.adb.secure]: [1]" in /default.prop to 0 and see whether that does anything.
In the other thread from giveen I said that I don't see the log spam. This was with debugging in the developer settings disabled. When I enable it, the logspam starts. But whether it is enabled or not, init still eats 100% cpu. The trouble with the debugging is that each time it is enabled and I want to disable it, the streak 7 immediately reboots.
Now that I had logcat via ssh running I caught this when the reboot happened:
Code:
W/dalvikvm( 367): threadid=50: thread exiting with uncaught exception (group=0x40b0e930)
E/AndroidRuntime( 367): *** FATAL EXCEPTION IN SYSTEM PROCESS: UsbDebuggingHandler
E/AndroidRuntime( 367): java.lang.NullPointerException
E/AndroidRuntime( 367): at com.android.server.usb.UsbDebuggingManager.closeSocket(UsbDebuggingManager.java:125)
E/AndroidRuntime( 367): at com.android.server.usb.UsbDebuggingManager.access$200(UsbDebuggingManager.java:46)
E/AndroidRuntime( 367): at com.android.server.usb.UsbDebuggingManager$UsbDebuggingHandler.handleMessage(UsbDebuggingManager.java:177)
E/AndroidRuntime( 367): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 367): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 367): at android.os.HandlerThread.run(HandlerThread.java:60)
Looks bad.
For looking at the android code I just use grep and ls with globbing for the c and config files and for the java part I imported it in eclipse via this method: http://source.android.com/source/using-eclipse.html
This is a build I haven't tested yet: http://w3studi.informatik.uni-stuttgart.de/~haagch/cm-10.1-20130820-UNOFFICIAL-streak7.zip
This is giveen's original nvflash that I am not sure I am allowed to put there as giveen has not put any license information in there: http://w3studi.informatik.uni-stuttgart.de/~haagch/JB_Beta2.1.zip But then it's all apache code and there are no notices in reagards to the apache license or changed files anyway. If not, you can just tell me and I'll remove it.
------------------------------------------------
So the call to connectLocal() that throws the exception has as parameters
fd: FileDescriptor[263]
address namespace: RESERVED with address name space id: 1 and address name: adbd
That doesn't help me much yet, but there are frequent calls with FileDescriptor[263] and namespace RESERVED, id 1, name rild (radio service) that don't throw an exception.
So it's a "valid" file descriptor... But I think the problem is still that adbd is not started by init...
The whole UsbDebuggingManager.run method is
Code:
public void run() {
while (mAdbEnabled) {
try {
listenToSocket();
} catch (Exception e) {
/* Don't loop too fast if adbd dies, before init restarts it */
SystemClock.sleep(1000);
}
}
}
where listeToSocket() is ultimately throwing the exception.
I have also read a bit about how adbd is supposed to work. Apparently in android 4.2.2 they introduced rsa encryption. It looks very similar to ssh. You have your authorized public keys on the device in /data/misc/adb/adb_keys (like ~/ssh/authorized_keys) and on your computer you have your public key in ~/.android/adbkey.pub
So I put my ~/.android/adbkey.pub in /data/misc/adb/adb_keys on the streak 7 and started adbd from the command line on the device. And indeed, when I connect with "adb connect <STREAK7-IP>" I get "<STREAK7-IP>:5555 device product:cm_streak7 model:Streak_7 device:streak7" with "adb devices -l" and adb shell works. It's a bit unrelated, but this applies: https://code.google.com/p/android/issues/detail?id=48126
But the actually important part, the "start adbd" still doesn't do anything.
It really must be somethin with /init.streak7.usb.rc. The stuff in /sys/class/android_usb/android0/ seem to be set all wrong...
------------------------------------------------
I'll just keep posting random things I discover that I find strange or interesting and if anyone knows anything about any of those, they can just chime in.
In /init.streak7.usb.rc there is the line
Code:
write /sys/class/android_usb/android0/iProduct $ro.product.model
"getprop ro.product.model" says "Streak 7" but /sys/class/android_usb/android0/iProduct apparently doesn't seem to be able to take a string with a space because "cat /sys/class/android_usb/android0/iProduct" returns "Streak". You can write directly to it with "cat "Streak 7" > /sys/class/android_usb/android0/iProduct" but it only saves up to the space. I don't think that's really a problem but strange anyway.
I have googled for another tegra 2 device and looked at its usb init rc: https://raw.github.com/CyanogenMod/android_device_samsung_p4-common/ics/init.p3.usb.rc
Adding a section with on property:sys.usb.config=adb did nothing and it seems I haven't been able to google what should be in /sys/class/android_usb/android0/idProduct for the streak 7.
I think I'll just look into how init on android works and how the triggers work. Then it shouldn't be too hard to figure out what exactly it is trying to do and why it is failing.
------------------------------------------------
I was trying to get my head around why "getprop sys.usb.config" would always return "none" and the system wouldn't respond to "setprop sys.usb.config adb,mtp" in any way. So I got to suspect that /init.streak7.usb.rc was not used at all. Then I compared the imports and found that /init.streak7.rc did use a relative path for /init.streak7.usb.rc while all the other init*.rc were using absolute paths.
So I'm not sure if it this is really the thing that fixed it, but it's the latest thing I tested and now init's 100% cpu and adb are fixed: https://github.com/ChristophHaag/an...mmit/eee0625e11cfafd510c3bada6ae67a133766c0f4
Edit: Wait, it happened again. Maybe not. :/
Hm, no, definitely not it. Can't even reproduce it. It worked after adb sideload and wiping the cache and the dalvik cache.
At least it's clear now that init's 100% cpu usage and adb not working and the dalvik crash when disabling debugging are all the same issue.
Good luck. I'll give you a hint as a parting gift. The USB issue is not kernel related.
I really dont care to licenses anything so you are free to do with as you will. Personally, I will continue to develop in private and if there are kernel changes, as per the GPL, I will make those updates available.
[moved to hidden section in first post]
[moved to hidden section in first post]
[moved to hidden section in first post]
If you really want to help, let me know. I'll let you in on my secret.
giveen said:
If you really want to help, let me know. I'll let you in on my secret.
Click to expand...
Click to collapse
Do I want to help? Does this thread look like I don't?
As I've said I'm new to the android code so I'm not really sure what I'm doing yet.
After rebooting with debugging enabled and adb sideloading an image it works for some reason (until you disable debugging in the developer settings, then it loops on sys.usb.config=none again) but it's all clearly not like intended by /init.streak7.usb.rc. /sys/class/android_usb/android0/idVendor is 18d1 and android_usb/android0/idProduct is d002 which is set in init.usb.rc for on property:sys.usb.config=adb...? I just don't get it yet. The init readme says declaring an action or service twice is an error but this is from upstream, so adb is supposed to always be 18d1:d002?
So if you know something I don't I would obviously greatly appreciate it if you told us. In fact you can directly push to the repository now if you wish to do so.
ccxxx said:
Do I want to help? Does this thread look like I don't?
As I've said I'm new to the android code so I'm not really sure what I'm doing yet.
After rebooting with debugging enabled and adb sideloading an image it works for some reason (until you disable debugging in the developer settings, then it loops on sys.usb.config=none again) but it's all clearly not like intended by /init.streak7.usb.rc. /sys/class/android_usb/android0/idVendor is 18d1 and android_usb/android0/idProduct is d002 which is set in init.usb.rc for on property:sys.usb.config=adb...? I just don't get it yet. The init readme says declaring an action or service twice is an error but this is from upstream, so adb is supposed to always be 18d1:d002?
So if you know something I don't I would obviously greatly appreciate it if you told us. In fact you can directly push to the repository now if you wish to do so.
Click to expand...
Click to collapse
The problem is CM.
I switched to AOKP which is close to Google's AOSP, and the problem solved itself. Something in the way USBManager is programmed in CM screwed things.
I got around to download aokp today.
The build system is slightly different, but easy enough to set up. I first just did an "update" to it, but the adb/init problem persisted, acore kept crashing (but deleting data for the contacts app "solved" that).
So I decided to finally make a factory reset. Not really sure what happens there, but that didn't delete the apps in /system/apps I think so I just wiped everything except sdcard etc. with twrp and installed the image again. This time it works better it seems. adb seems ok for now, cpu usage is okay.
The 4.2.2. google apps for that are these: http://goo.im/gapps/gapps-jb-20130812-signed.zip
Now I'm not sure: Would a factory reset/complete reinstall have helped with cyanogenmod too?
aokp is missing a few features cyanogenmod has, most notably the performance settings where you can overclock and set up zram with the gui.
Keyboard still crashes. Not really surprising that illegal instruction hasn't changed.
There doesn't seem to be recent apps when long pressing the home button. Strange.
Not sure how much I like it yet and whether I'd rather use cyanogenmod.
Here it is: http://w3studi.informatik.uni-stuttgart.de/~haagch/aokp_streak7_unofficial_2013-08-23.zip
Thanks, giveen.
No problem. AOSP keyboard burns RAM like nothing else. If you switch to an 3rd party keyboard , you will no longer crash. This problem is common on a lot of low memory devices. ZRAM doesn't really work. I have a script that I want to test out that DJ_Steve had originally wrote. Also, I will send you the sensor files you need to modify to get them to work.
google has this keyboard in the play store https://play.google.com/store/apps/details?id=com.google.android.inputmethod.latin and I got it from http://dl.androidnext.de/com.google.android.inputmethod.latin.apk. Works ok, but has issues like you can't disable the "ducking" blocking of "offensive" words...
The sensors changes you commited work well. Rotation/acceleration/magnet/light seem to react normally.
It's almost usable now.
For people building it from source: If you get a weird error like "ERROR: couldn't find <type 'property'> in build.prop" and can't find anything useful with google... I deleted out/* and did a complete rebuild and then it worked.
Plugging in a headset still doesn't turn off speakers but it seems only like a minor issue since it seems to be detected just fine:
Code:
V/WiredAccessoryManager( 374): Headset UEVENT: {SUBSYSTEM=switch, SWITCH_STATE=1, DEVPATH=/devices/virtual/switch/h2w, SEQNUM=2006, ACTION=change, SWITCH_NAME=h2w}
V/WiredAccessoryManager( 374): newName=h2w newState=1 headsetState=1 prev headsetState=0
W/AudioPolicyManagerBase( 103): checkOutputsForDevice(): No output available for device 0004
V/WiredAccessoryManager( 374): device h2w connected
Google tts is crashing like the keyboard (
Code:
F/libc ( 6525): Fatal signal 4 (SIGILL) at 0x5dc80738 (code=1), thread 6525 (gle.android.tts)
) but pico tts seems to work, at least with english.
A Google search gave me this:
http://stackoverflow.com/questions/7102606/sigill-in-android-ndk-code/7104177#7104177
And further this might be worth looking into: http://forum.xda-developers.com/showthread.php?t=2186251
Not sure whether it's simply neon instructions or register usage of 16+ since I haven't looked that close into the build system yet. But probably ILL_ILLOPC means it's a neon instruction.
So sensors work now? I've been at that for months and I wasn't sure if I got it right. If I got it right, that was months of work there that I wasn't even sure was going to work.
Headphones and microphones need to be adjusted in mixer_paths.xml
Months of untested work that just works? Impossible! :good:
I haven't done a really thorough test, but they all seem to be doing something. https://play.google.com/store/apps/details?id=imoblife.androidsensorbox seems to have a little problem with the directions with the rotated screen though. But in general it all does something that seems related to what I do to the device.
The AKM8973. is a chip that is normally found on qualcomm devices. So I had to track down the right HAL and then modify to work with Tegra sword ices. It's a terrible hack/slash, modify and pray it works job. I had Just finished. Does the screen rotate?
giveen said:
The AKM8973. is a chip that is normally found on qualcomm devices. So I had to track down the right HAL and then modify to work with Tegra sword ices. It's a terrible hack/slash, modify and pray it works job. I had Just finished. Does the screen rotate?
Click to expand...
Click to collapse
Yes, the screen rotates. And even more impressively, it rotates correctly!
Good. Now i can focus my energy on the camera.
Hm, having difficulty with my compiles booting. Chris, if you compile and upload the zip, I can give you my goo.im information and you can push it as an auto-update. Don't forget to include your name in there somewhere for credit as well as you are now part of the team.
giveen said:
Hm, having difficulty with my compiles booting. Chris, if you compile and upload the zip, I can give you my goo.im information and you can push it as an auto-update.
Click to expand...
Click to collapse
I have edited my first post.
http://w3studi.informatik.uni-stuttgart.de/~haagch/aokp_streak7_unofficial_2013-08-25.zip
http://w3studi.informatik.uni-stuttgart.de/~haagch/aokp_streak7-ota-eng.c-builder.zip
giveen said:
Don't forget to include your name in there somewhere for credit as well as you are now part of the team.
Click to expand...
Click to collapse
Yea, maybe if I contribute something substantial instead of cosmetic changes.
OH yeah, bluetooth keyboard, I see that as one of your issues. I'll upload a bunch of idc files that should at least address that issue, not sure though.
Are you missing any commits? I noticed your update has sensor working but my build does not.
I need to hook runInstall from Pm.java (android commands)
https://android.googlesource.com/pl...1/cmds/pm/src/com/android/commands/pm/Pm.java
I used
Code:
XposedHelpers.findAndHookMethod(pmCommandsClass, "runInstall",
installBackgroundHook);
public static final String PMCOMMANDS = "com.android.commands.pm.Pm";
public Class<?> pmCommandsClass = XposedHelpers.findClass(
PMCOMMANDS, null);
but I got ClassNotFoundError..
Edit: I found that there is a IXposedHookCmdInit (and I probably need it). But how to use it? @rovo89?
pyler said:
Edit: I found that there is a IXposedHookCmdInit (and I probably need it). But how to use it? @rovo89?
Click to expand...
Click to collapse
If you check further, you will see that IXposedHookCmdInit is deprecated. As the comment says, you need to create a flag file if you want to hook tools, but it's strongly discouraged (and all of your users would have to do the same). I only kept this class because I use the "am" tool for testing low-level framework changes, so I don't have to restart the whole system. So consider it a debugging feature, not meant for end-users.
There are often better places that you should hook instead. In your case, you might want to hook the PackageManagerService, as "pm" is just the frontend.
Uhm.
I wanted to block installation in the background using "pm install file.apk" and hooking runInstall from Pm.java was the best way.
In PackageManagerService#installPackage I cant find out if installations is started using "pm" :/ Any good idea for workaround?
Well, "pm" is a shell script, so you could maybe modify it directly, without Xposed.
Or you do something similar to installPackageWithVerification():
Code:
final int uid = Binder.getCallingUid();
final int filteredFlags;
if (uid == Process.SHELL_UID || uid == 0) {
if (DEBUG_INSTALL) {
Slog.v(TAG, "Install from ADB");
}
filteredFlags = flags | PackageManager.INSTALL_FROM_ADB;
} else {
filteredFlags = flags & ~PackageManager.INSTALL_FROM_ADB;
}
Instead of (or in addition to) this, you could also retrieve the PID to get more information about that process. But maybe it's enough to check for that INSTALL_FROM_ADB flag.
Yes, this way may work. Thanks now, I am going to try it.
Sorry for the beginner question - i'm beginning Android development:
I'm trying to create a Xposed module for Chrome, but when I try to hook into onCreateOptionsMenu I get the error:
NoSuchMethodError: com.google.android.apps.chrome.ChromeActivity#onCreateOptionsMenu()#exact
My best guess is that ChromeActivity doesn't override the Activity's onCreateOptionsMenu method. Am I on the right track? Can I implement it using Xposed?
(Code is here: pastie.org/9748669)
cassiozen said:
Sorry for the beginner question - i'm beginning Android development:
I'm trying to create a Xposed module for Chrome, but when I try to hook into onCreateOptionsMenu I get the error:
NoSuchMethodError: com.google.android.apps.chrome.ChromeActivity#onCreateOptionsMenu()#exact
My best guess is that ChromeActivity doesn't override the Activity's onCreateOptionsMenu method. Am I on the right track? Can I implement it using Xposed?
(Code is here: pastie.org/9748669)
Click to expand...
Click to collapse
First, make sure you are listing correct method parameters. onCreateOptionsMenu takes a "Menu" parameter and you have to specify it in findAndHookMethod
Code:
findAndHookMethod("com.google.android.apps.chrome.ChromeActivity", classLoader,
"onCreateOptionsMenu", [COLOR="Red"]Menu.class[/COLOR], new XC_MethodHook() {
...
});
Them, if you are still not able to hook it because it's not overriden from super class (I have a feeling current official xposed framework can handle such cases but not sure).
your option is to hook on super class (e.g. activity) and check whether the instance you are currently working with is the ChromeActivity one.
Code:
if (param.thisObject.getClass().getName().equals("com.google.android.apps.chrome.ChromeActivity") {
...
}
Make sure to create your Activity hook in Chrome package context only as doing it system wide would affect all packages
which would bring too much unneeded overhead.
Hi,
I have Asus Zenfone Max Pro M1 with StockMod Pie with Magisk v20.3 Stable
Magisk Manager has been renamed to Manager
Safety Net Check has been successful always, both *ctsProfile & basicIntegrity"
On same, have been using an Indian Bank - IDBI Bank GoMobile+ app for last few months and things have been all fine. The app has been selected under Magisk Hide.
I do use other bank/fintech apps too like GooglePay etc and they work fine.
But since yesterday this GoMobile+ app is saying phone rooted and not working. It seems that with recent update of 30th Jul they have introduced some additional check.
Taking bit of inspiration from @rithvikvibhu message in earlier thread I tried to decompile the latest apk to jar and use jd-gui to see if can find something related to root
com.scottyab.rootbeer and within same I see following
Code:
package com.scottyab.rootbeer;
public final class b {
public static final String[] a = new String[]
{ "com.noshufou.android.su",
"com.noshufou.android.su.elite",
"eu.chainfire.supersu",
"com.koushikdutta.superuser",
"com.thirdparty.superuser",
"com.yellowes.su",
"com.topjohnwu.magisk" };
public static final String[] b = new String[]
{ "com.koushikdutta.rommanager",
"com.koushikdutta.rommanager.license",
"com.dimonvideo.luckypatcher",
"com.chelpus.lackypatch",
"com.ramdroid.appquarantine",
"com.ramdroid.appquarantinepro",
"com.android.vending.billing.InAppBillingService.COIN",
"com.chelpus.luckypatcher" };
public static final String[] c = new String[]
{ "com.devadvance.rootcloak",
"com.devadvance.rootcloakplus",
"de.robv.android.xposed.installer",
"com.saurik.substrate",
"com.zachspong.temprootremovejb",
"com.amphoras.hidemyroot",
"com.amphoras.hidemyrootadfree",
"com.formyhm.hiderootPremium",
"com.formyhm.hideroot" };
public static final String[] d = new String[]
{ "/data/local/", "/data/local/bin/", "/data/local/xbin/", "/sbin/",
"/su/bin/", "/system/bin/", "/system/bin/.ext/", "/system/bin/failsafe/",
"/system/sd/xbin/", "/system/usr/we-need-root/",
"/system/xbin/", "/cache", "/data", "/dev" };
public static final String[] e = new String[]
{ "/system", "/system/bin", "/system/sbin", "/system/xbin",
"/vendor/bin", "/sbin", "/etc" };
private b() throws InstantiationException {
throw new InstantiationException("This class is not for instantiation");
}
Now am not using any of these apps atleast. So what can be the reason here? I don't want to go with the option of signing modified apk.
Also anything else to be searched in jar file? I tried searching isrooted etc but couldn't find. Even tried searching for rootbeer but nothing came.
Pls help and suggest what can be possible solutions.
I installed Rootbeer Sample app and selected it in Magisk Hide and upon running same, it says Not Rooted. Everything passes with green except "Busybox Binary"
Also I tried analyzing logcat over adb and read following
Code:
[ 08-02 19:40:11.629 27679:27830 V/RootBeer ]
c: a() [184] - /system/xbin/busybox binary detected!
PS: I am using apk to jar and using the above tools for the first time. So may be missing few more options/search etc
SOLUTION: Read post 2, in my case there was an old remant of BusyBox which was creating the issue.
For others having issue in using IDBI GoMobile+, pls check that you don't have any of the above apps (mentioned under spoiler)
Problem Solved
Ok, so after few hours of reading and playing around with tweaks etc found that issue was following:
there was an old remnant of busybox binary - may be installed as part of ROM or some package. This BusyBox was in /system/xbin/
Seems that this was over and above the systemless busybox installed via Magisk.
Now, it seems for some reason, only in the last app update, this system busybox presence was also flagged as ROOTED
I got this idea, from @tamer7's post. Basis same, went to TWRP and flashed Busybox-CLEANER.zip by @YashdSaraf
Rebooted and openedd RootBeer Sample and got all green. I then went to the bank app and here too no nag message of "being rooted" YAY
"com.topjohnwu.magisk" is also in the list of apps to be checked. Magisk Manager uses the same package name.
BlueJeans said:
"com.topjohnwu.magisk" is also in the list of apps to be checked. Magisk Manager uses the same package name.
Click to expand...
Click to collapse
Thanks for the feedback, but as mentioned have already renamed the Magisk Manager to Manager and so the package name is changed
Solved
The issue is resolved, thanks to threads on xda, infosecinstitute, medium etc
Trying to help a friend install an rclone pluing for Kodi, I found out that on my phone I needed to install this module https://github.com/galeksandrp/app-data-file-exec
The module worked and Kodi was able to run a binary in its data directory. Problem is my friend uses an Nvidia Shield and he wants to use official streaming apps too (Netflix, Prime Video, etc.). Rooting is consequently a no-no, otherwise those would fail to play at highest quality.
I've found a possible workaround but to test I need to reverse this policy:
allow * { app_data_file privapp_data_file } file { execute_no_trans }
Which is pretty much all that the module I installed does.
Uninstalling the module did not remove the policy. Kodi keeps on being able to execute the rclone binary. And I need to restore my system to how it was before that policy modification.
Any help? Thanks in advance!
Edit: while waiting for somebody knowledgeable enough I've been searching and searching. I've found this, from here: https://android.googlesource.com/platform/system/sepolicy/+/master/private/app_neverallows.te#58
Code:
# Block calling execve() on files in an apps home directory.
# This is a W^X violation (loading executable code from a writable
# home directory). For compatibility, allow for targetApi <= 28.
# b/112357170
neverallow {
all_untrusted_apps
-untrusted_app_25
-untrusted_app_27
-runas_app
} { app_data_file privapp_data_file }:file execute_no_trans;
But I am unsure how to proceed, since the module does not completely reverse the above, it's more targeted. I wouldn't want to create a situation where normal apps cannot work properly anymore.
gorman42 said:
Trying to help a friend install an rclone pluing for Kodi, I found out that on my phone I needed to install this module https://github.com/galeksandrp/app-data-file-exec
The module worked and Kodi was able to run a binary in its data directory. Problem is my friend uses an Nvidia Shield and he wants to use official streaming apps too (Netflix, Prime Video, etc.). Rooting is consequently a no-no, otherwise those would fail to play at highest quality.
I've found a possible workaround but to test I need to reverse this policy:
allow * { app_data_file privapp_data_file } file { execute_no_trans }
Which is pretty much all that the module I installed does.
Uninstalling the module did not remove the policy. Kodi keeps on being able to execute the rclone binary. And I need to restore my system to how it was before that policy modification.
Any help? Thanks in advance!
Click to expand...
Click to collapse
every custom allow (ie not compiled into the ROM) I apply on my phone, has to be reinstated on boot.
If you have root, its possible that it is being reinstated by something, on every boot. eitehr a Magisk script, a Magisk module or a rooted app.
However, when compiling ROMs, the opposite of "allow" is "deny". I have never tried to add a deny (or revert an allow), and it cant be done without root, so you are back where you started.
Sorry, I probably did not explain myself fully.
I have root and it's absolutely fine for me to keep root on this device. Withouth that policy my rooted device was behaving the same way as Nvidia Shield TV. And I simply want to restore it to the way it was.
This is why I linked to the module, because to me it seems that it simply issues the command I pasted here. But maybe I am missing something. I have unistalled it, I have deleted the files too. But still Kodi is now able to execute binary code in its own data directory, something that on 11 should be not allowed.
If there are termux commands I can use to check the situation, as stated, I have root, I can do whatever is needed to gather more information.
I simply thought that it was enough for me to uninstall the module to revert but that does not appear to be the case. Unless the privilege Kodi is using is saved once and for all on a per app basis. And since Kodi used it once, it remained (it doesn't sound likely but I'm grasping at straws).
I asked mods to move this, if this is not the correct forum to ask for this.
Edit: it was in general questions and answers
Bump? I hope it's allowed.
Could somebody be so kind as to advise where I could post this so as to get an answer? I realize this might be the wrong forum, maybe.
But I have asked already in two different places and I haven't gotten to the bottom of it.
Thanks!
Bump
Bump... :-(
Bump. I hope somebody could at least point me to somewhere where I could ask.
Please?
Bump.