Hi guys, this is my first thread I write on xda and I'm italian so, please, forgive me if I don't write so good. Today I flashed on my nexus 6 the last twrp recovery and then the lineage 16 rom released yesterday. Before rebooting I flashed the open gapps zip Platform arm, android 9, variant stock that includes the pixel launcher. Unluckly, when I boot the system, the pixel launcher keeps interrupting automatically so I'm forced to select the trebuchet as default launcher. I wanna say that I faced this issue even with lineage 15 so I guess the problem isn't given by the rom. Some tips on how I can solve this issue?
I also installed the stock variant of Gapps. Pixel Launcher keeps crashing for me too. Also the Android Setup wizard keeps crashing and will not complete. Did you also experience this? Other than that, Lineage 16 seems to be working fine for me.
nhasian said:
I also installed the stock variant of Gapps. Pixel Launcher keeps crashing for me too. Also the Android Setup wizard keeps crashing and will not complete. Did you also experience this? Other than that, Lineage 16 seems to be working fine for me.
Click to expand...
Click to collapse
No, I completed the setup wizard without any problem.
I am seeing this issue as well. Are any of you rooted with Magisk?
mattewthep said:
Hi guys, this is my first thread I write on xda and I'm italian so, please, forgive me if I don't write so good. Today I flashed on my nexus 6 the last twrp recovery and then the lineage 16 rom released yesterday. Before rebooting I flashed the open gapps zip Platform arm, android 9, variant stock that includes the pixel launcher. Unluckly, when I boot the system, the pixel launcher keeps interrupting automatically so I'm forced to select the trebuchet as default launcher. I wanna say that I faced this issue even with lineage 15 so I guess the problem isn't given by the rom. Some tips on how I can solve this issue?
Click to expand...
Click to collapse
A log would be handy. Otherwise no one will look into this bug.
log
Elektroschmock said:
A log would be handy. Otherwise no one will look into this bug.
Click to expand...
Click to collapse
I'm far from being pro, but looks like something with permission.
"03-05 12:36:57.572 W/ActivityManager(748): Permission Denial: setShelfHeight() from pid=9545, uid=10012 requires android.permission.STATUS_BAR
03-05 12:36:57.573 D/AndroidRuntime(9545): Shutting down VM
03-05 12:36:57.575 E/AndroidRuntime(9545): FATAL EXCEPTION: main
03-05 12:36:57.575 E/AndroidRuntime(9545): Process: com.google.android.apps.nexuslauncher, PID: 9545
03-05 12:36:57.575 E/AndroidRuntime(9545): java.lang.RuntimeException: Unable to resume activity {com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity}: java.lang.SecurityException: Permission Denial: setShelfHeight() from pid=9545, uid=10012 requires android.permission.STATUS_BAR"
nhasian said:
I also installed the stock variant of Gapps. Pixel Launcher keeps crashing for me too. Also the Android Setup wizard keeps crashing and will not complete. Did you also experience this? Other than that, Lineage 16 seems to be working fine for me.
Click to expand...
Click to collapse
I solved the issue giving to the launcher all permissions, try this way
mattewthep said:
I solved the issue giving to the launcher all permissions, try this way
Click to expand...
Click to collapse
I tried this approach when I first installed the update but it did not work. When I get a chance, I will try again with updated builds.
Any of you guys with the Pixel launcher error have ADB fired up and willing to check this out as a workaround?:
https://developer.android.com/reference/android/Manifest.permission.html#STATUS_BAR
https://github.com/TilesOrganization/support/wiki/How-to-use-ADB-to-grant-permissions
tldr;
STATUS_BAR:
Allows an application to open, close, or disable the status bar and its icons.
Not for use by third-party applications.
Constant Value: "android.permission.STATUS_BAR"
adb shell pm [grant|revoke] com.google.android.apps.nexuslauncher android.permission.STATUS_BAR
adb shell dumpsys com.google.android.apps.nexuslauncher
Raksi said:
Any of you guys with the Pixel launcher error have ADB fired up and willing to check this out as a workaround?:
https://developer.android.com/reference/android/Manifest.permission.html#STATUS_BAR
https://github.com/TilesOrganization/support/wiki/How-to-use-ADB-to-grant-permissions
tldr;
STATUS_BAR:
Allows an application to open, close, or disable the status bar and its icons.
Not for use by third-party applications.
Constant Value: "android.permission.STATUS_BAR"
adb shell pm [grant|revoke] com.google.android.apps.nexuslauncher android.permission.STATUS_BAR
adb shell dumpsys com.google.android.apps.nexuslauncher
Click to expand...
Click to collapse
No. I have not seen this anywhere. I will try it later in the week when time permits.
zzenyoo said:
I'm far from being pro, but looks like something with permission.
"03-05 12:36:57.572 W/ActivityManager(748): Permission Denial: setShelfHeight() from pid=9545, uid=10012 requires android.permission.STATUS_BAR
03-05 12:36:57.573 D/AndroidRuntime(9545): Shutting down VM
03-05 12:36:57.575 E/AndroidRuntime(9545): FATAL EXCEPTION: main
03-05 12:36:57.575 E/AndroidRuntime(9545): Process: com.google.android.apps.nexuslauncher, PID: 9545
03-05 12:36:57.575 E/AndroidRuntime(9545): java.lang.RuntimeException: Unable to resume activity {com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity}: java.lang.SecurityException: Permission Denial: setShelfHeight() from pid=9545, uid=10012 requires android.permission.STATUS_BAR"
Click to expand...
Click to collapse
I wonder why the app name isn't com.google.android.apps.pixellauncher
No luck.
Seems like despite the launcher/something_else needs it, the manifest file does not request it.
Code:
[[email protected] platform-tools]# ./adb shell pm
...
grant [--user USER_ID] PACKAGE PERMISSION
revoke [--user USER_ID] PACKAGE PERMISSION
These commands either grant or revoke permissions to apps. [COLOR="Red"]The permissions
must be declared as used in the app's manifest[/COLOR], be runtime permissions
(protection level dangerous), and the app targeting SDK greater than Lollipop MR1.
...
Code:
[[email protected] platform-tools]# ./adb shell pm grant com.google.android.apps.nexuslauncher android.permission.STATUS_BAR
Security exception: Package com.google.android.apps.nexuslauncher has not requested permission android.permission.STATUS_BAR
java.lang.SecurityException: Package com.google.android.apps.nexuslauncher has not requested permission android.permission.STATUS_BAR
at com.android.server.pm.permission.BasePermission.enforceDeclaredUsedAndRuntimeOrDevelopment(BasePermission.java:379)
at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:1404)
at com.android.server.pm.permission.PermissionManagerService.access$900(PermissionManagerService.java:89)
at com.android.server.pm.permission.PermissionManagerService$PermissionManagerInternalImpl.grantRuntimePermission(PermissionManagerService.java:2093)
at com.android.server.pm.PackageManagerService.grantRuntimePermission(PackageManagerService.java:5475)
at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:1730)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:217)
at android.os.ShellCommand.exec(ShellCommand.java:103)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:21418)
at android.os.Binder.shellCommand(Binder.java:634)
at android.os.Binder.onTransact(Binder.java:532)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2821)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3920)
at android.os.Binder.execTransact(Binder.java:731)
Code:
[[email protected] platform-tools]# ./adb shell pm grant com.google.android.apps.nexuslauncher android.permission.STATUS_BAR_SERVICE
Security exception: Package com.google.android.apps.nexuslauncher has not requested permission android.permission.STATUS_BAR_SERVICE
java.lang.SecurityException: Package com.google.android.apps.nexuslauncher has not requested permission android.permission.STATUS_BAR_SERVICE
at com.android.server.pm.permission.BasePermission.enforceDeclaredUsedAndRuntimeOrDevelopment(BasePermission.java:379)
at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:1404)
at com.android.server.pm.permission.PermissionManagerService.access$900(PermissionManagerService.java:89)
at com.android.server.pm.permission.PermissionManagerService$PermissionManagerInternalImpl.grantRuntimePermission(PermissionManagerService.java:2093)
at com.android.server.pm.PackageManagerService.grantRuntimePermission(PackageManagerService.java:5475)
at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:1730)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:217)
at android.os.ShellCommand.exec(ShellCommand.java:103)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:21418)
at android.os.Binder.shellCommand(Binder.java:634)
at android.os.Binder.onTransact(Binder.java:532)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2821)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3920)
at android.os.Binder.execTransact(Binder.java:731)
Packing error? Wonder if I'm able to edit the manifest on the device.
Raksi said:
Packing error? Wonder if I'm able to edit the manifest on the device.
Click to expand...
Click to collapse
I do not think you can edit the manifest without decompiling.
Look, someone opened an issue with OpenGapps:
https://github.com/opengapps/opengapps/issues/727
Code:
eth481642 commented 7 hours ago •
After installing Lineage OS 16.0 with latest opengapps(stock variant) on Nexus 6, pixel launcher crashes. It looks like there is some kind of permission problem
All hail hypnotoa... i mean eth481642!
For those of you that use Magisk, installing this module fixed the problem for me. It breaks Trebuchet, but after you switch to the Pixel launcher, everything works as expected.
https://forum.xda-developers.com/showpost.php?p=78029447&postcount=483
David B. said:
For those of you that use Magisk, installing this module fixed the problem for me. It breaks Trebuchet, but after you switch to the Pixel launcher, everything works as expected.
https://forum.xda-developers.com/showpost.php?p=78029447&postcount=483
Click to expand...
Click to collapse
Ha! It works! :highfive:
zzenyoo said:
Ha! It works! :highfive:
Click to expand...
Click to collapse
Yup! I can't figure out what it does, but it does indeed work. Unfortunately this is merely a band-aid for the problem, but at least it's a start.
So, apparently the kind devs at opengapps did solve it a few weeks ago:
Adding STATUS_BAR and MANAGE_ACTIVITY_STACKS indeed solves the problem.
Click to expand...
Click to collapse
I was a bit late but can confirm the new 2020.01.24 stock opengapps has a working Pixel Launcher!
Did a dirty update over my current rom as I already had the same package.
The Pixel Launcher forces close because he's not the recents provider, i fix this issue using Quickswitch magisk module
Got into a bootloop with the newest LOS16 nightly "Feb 1". and the previously mentioned OpenGapps Jan24.
After a few combinations of LOS nightly only factory reset solved it for me. As soon as I installed the Jan24 opengapps... bootloop.
Now LOS Jan30 nightly with OpenGapps Jan 31 stock booted up. Setting back everything. Donno what happened.
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.
**** This module is now obsolete as privapp permissions are now granted automatically when systemizing apps with Terminal App Systemizer. Please use that from now on. ****
In Android 8.0 Oreo, permissions are not automatically granted to system privileged apps. This is automatically done by apps where the root method allows system modifications, but with systemless root that has to be done in a different way.
Therefore, apps systemized into /system/priv-app using App Systemizer or Terminal App Systemizer will not be granted some permissions. All privileged apps must be whitelisted in system configuration files in the /etc/permissions directory.
Entries can either be appended to /etc/permissions/privapp-permissions-platform.xml or separate files can be created for each package; i.e., /etc/permissions/privapp-permisisons-com.package.name.xml. The latter is easier and more modular (pun intended :laugh: ).
This module is more of a template. I've included XML files for BetterBatteryStats, Cerberus, F-Droid Privileged Extension, Greenify and Wakelock Detector Free. Before flashing it, you will want to add or remove XML files according to your needs.
Example XML file:
/etc/permissions/privapp-permisisons-com.package.name.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<privapp-permissions package="com.package.name">
<permission name="android.permission.WRITE_A_SETTING" />
<permission name="android.permission.WRITE_ANOTHER_SETTING" />
</privapp-permissions>
</permissions>
In order to determine what permissions are missing from your systemized app, you can compare the requested permissions and install permissions by running:
Code:
adb shell dumpsys package com.package.name
However, not every permission missing from the install permissions section needs to be granted in this manner. If you're not sure, contact the app developer for clarification.
A better version of this module would generate the permissions configuration XML file without having to get your hands dirty. However, that would require including aapt and I haven't figured out how to do it yet. Perhaps @stangri or @veez21 could help with that.
Download:
Module removed, please use Terminal App Systemizer
RESERVED
yochananmarqos said:
In
In order to determine what permissions are missing from your systemized app, you can compare the requested permissions and installed permissions by running:
Code:
adb shell dumpsys package com.package.name
Click to expand...
Click to collapse
Hi, I'm trying to get FakeGPS to work on Oreo. I think I've done everything correctly, but the app freezes when I try to engage the location.
Below is the output from ADB. Does this looks correct, or do I need further action? Thanks!
Activity Resolver Table:
Full MIME Types:
text/plain:
361e3e2 com.incorporateapps.fakegps/.Maps filter 67f598b
Action: "android.intent.action.SEND"
Category: "android.intent.category.DEFAULT"
Type: "text/plain"
Base MIME Types:
text:
361e3e2 com.incorporateapps.fakegps/.Maps filter 67f598b
Action: "android.intent.action.SEND"
Category: "android.intent.category.DEFAULT"
Type: "text/plain"
Schemes:
geo:
361e3e2 com.incorporateapps.fakegps/.Maps filter 35b935a
Action: "android.intent.action.VIEW"
Category: "android.intent.category.DEFAULT"
Category: "android.intent.category.BROWSABLE"
Scheme: "geo"
Non-Data Actions:
com.htc.laputa.map.action.REVERSE_ADDR_ON_MAP:
361e3e2 com.incorporateapps.fakegps/.Maps filter 7e66705
Action: "com.htc.laputa.map.action.REVERSE_ADDR_ON_MAP"
Category: "android.intent.category.DEFAULT"
android.intent.action.MAIN:
361e3e2 com.incorporateapps.fakegps/.Maps filter 38ce27c
Action: "android.intent.action.MAIN"
Category: "android.intent.category.LAUNCHER"
MIME Typed Actions:
android.intent.action.SEND:
361e3e2 com.incorporateapps.fakegps/.Maps filter 67f598b
Action: "android.intent.action.SEND"
Category: "android.intent.category.DEFAULT"
Type: "text/plain"
Receiver Resolver Table:
Non-Data Actions:
android.intent.action.BOOT_COMPLETED:
6e91373 com.incorporateapps.fakegps/.BootServiceReceiver filter abfc04e
Action: "android.intent.action.BOOT_COMPLETED"
mPriority=999, mHasPartialTypes=false
com.incorporateapps.fakegps.ACTION_STOP:
31c8230 com.incorporateapps.fakegps/.StopButtonListener filter a90d56f
Action: "com.incorporateapps.fakegps.ACTION_STOP"
Service Resolver Table:
Non-Data Actions:
com.incorporateapps.fakegps.STOP:
3ee3ea9 com.incorporateapps.fakegps/.Tasker filter c041f49
Action: "com.incorporateapps.fakegps.STOP"
com.incorporateapps.fakegps.ENGAGE:
3ee3ea9 com.incorporateapps.fakegps/.Tasker filter c910150
Action: "com.incorporateapps.fakegps.ENGAGE"
Key Set Manager:
[com.incorporateapps.fakegps]
Signing KeySets: 67
Packages:
Package [com.incorporateapps.fakegps] (33e5c2e):
userId=10091
pkg=Package{b3773cf com.incorporateapps.fakegps}
codePath=/data/app/com.incorporateapps.fakegps-7O6AqP-HQQ0wLXWBTXyOLw==
resourcePath=/data/app/com.incorporateapps.fakegps-7O6AqP-HQQ0wLXWBTXyOLw==
legacyNativeLibraryDir=/data/app/com.incorporateapps.fakegps-7O6AqP-HQQ0wLXWBTXyOLw==/lib
primaryCpuAbi=null
secondaryCpuAbi=null
versionCode=67 minSdk=8 targetSdk=20
versionName=4.9.6
splits=[base]
apkSigningVersion=1
applicationInfo=ApplicationInfo{cff915c com.incorporateapps.fakegps}
flags=[ SYSTEM HAS_CODE ALLOW_CLEAR_USER_DATA UPDATED_SYSTEM_APP ALLOW_BACKUP ]
privateFlags=[ PRIVILEGED ]
dataDir=/data/user/0/com.incorporateapps.fakegps
supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
usesLibraries:
com.google.android.maps
usesLibraryFiles:
/system/framework/com.google.android.maps.jar
timeStamp=2017-09-26 08:41:14
firstInstallTime=2017-09-26 08:41:15
lastUpdateTime=1970-08-29 17:38:13
installerPackageName=com.android.vending
signatures=PackageSignatures{431c65 [15a9c792]}
installPermissionsFixed=true installStatus=1
pkgFlags=[ SYSTEM HAS_CODE ALLOW_CLEAR_USER_DATA UPDATED_SYSTEM_APP ALLOW_BACKUP ]
requested permissions:
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.INTERNET
android.permission.ACCESS_MOCK_LOCATION
android.permission.WRITE_SETTINGS
com.android.vending.CHECK_LICENSE
android.permission.INSTALL_LOCATION_PROVIDER
android.permission.WRITE_SECURE_SETTINGS
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.UPDATE_APP_OPS_STATS
install permissions:
android.permission.WRITE_SETTINGS: granted=true
android.permission.ACCESS_FINE_LOCATION: granted=true
android.permission.INSTALL_LOCATION_PROVIDER: granted=true
android.permission.RECEIVE_BOOT_COMPLETED: granted=true
android.permission.INTERNET: granted=true
com.android.vending.CHECK_LICENSE: granted=true
android.permission.WRITE_SECURE_SETTINGS: granted=true
android.permission.ACCESS_COARSE_LOCATION: granted=true
android.permission.UPDATE_APP_OPS_STATS: granted=true
User 0: ceDataInode=1736796 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false
gids=[3003]
runtime permissions:
Hidden system packages:
Package [com.incorporateapps.fakegps] (a580d3a):
userId=10091
pkg=Package{617deb com.incorporateapps.fakegps}
codePath=/system/priv-app/FakeGPS
resourcePath=/system/priv-app/FakeGPS
legacyNativeLibraryDir=/system/priv-app/FakeGPS/lib
primaryCpuAbi=null
secondaryCpuAbi=null
versionCode=67 minSdk=8 targetSdk=20
versionName=4.9.6
splits=[base]
apkSigningVersion=1
applicationInfo=ApplicationInfo{ca26748 com.incorporateapps.fakegps}
flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
dataDir=null
supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
usesLibraries:
com.google.android.maps
timeStamp=1970-08-29 17:38:13
firstInstallTime=2017-09-26 08:41:15
lastUpdateTime=1970-08-29 17:38:13
signatures=PackageSignatures{64e19e1 []}
installPermissionsFixed=false installStatus=1
pkgFlags=[ SYSTEM ]
requested permissions:
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.INTERNET
android.permission.ACCESS_MOCK_LOCATION
android.permission.WRITE_SETTINGS
com.android.vending.CHECK_LICENSE
android.permission.INSTALL_LOCATION_PROVIDER
android.permission.WRITE_SECURE_SETTINGS
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.UPDATE_APP_OPS_STATS
install permissions:
android.permission.WRITE_SETTINGS: granted=true
android.permission.ACCESS_FINE_LOCATION: granted=true
android.permission.RECEIVE_BOOT_COMPLETED: granted=true
android.permission.INTERNET: granted=true
com.android.vending.CHECK_LICENSE: granted=true
android.permission.ACCESS_COARSE_LOCATION: granted=true
User 0: ceDataInode=0 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false
gids=[3003]
runtime permissions:
Package Changes:
Sequence number=6
User 0:
seq=0, package=com.google.android.talk
seq=4, package=com.google.android.gms
seq=5, package=com.android.terminal
Dexopt state:
[com.incorporateapps.fakegps]
Instruction Set: arm64
path: /data/app/com.incorporateapps.fakegps-7O6AqP-HQQ0wLXWBTXyOLw==/base.apk
status: /data/app/com.incorporateapps.fakegps-7O6AqP-HQQ0wLXWBTXyOLw==/oat/arm64/base.odex[status=kOatUpToDate, co
mpilation_filter=quicken]
Compiler stats:
[com.incorporateapps.fakegps]
base.apk - 728
com.incorporateapps.fakegps.apk - 533
resarfekim said:
Hi, I'm trying to get FakeGPS to work on Oreo. I think I've done everything correctly, but the app freezes when I try to engage the location.
Below is the output from ADB. Does this looks correct, or do I need further action? Thanks!
pkgFlags=[ SYSTEM ]
requested permissions:
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.INTERNET
android.permission.ACCESS_MOCK_LOCATION
android.permission.WRITE_SETTINGS
com.android.vending.CHECK_LICENSE
android.permission.INSTALL_LOCATION_PROVIDER
android.permission.WRITE_SECURE_SETTINGS
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.UPDATE_APP_OPS_STATS
install permissions:
android.permission.WRITE_SETTINGS: granted=true
android.permission.ACCESS_FINE_LOCATION: granted=true
android.permission.RECEIVE_BOOT_COMPLETED: granted=true
android.permission.INTERNET: granted=true
com.android.vending.CHECK_LICENSE: granted=true
android.permission.ACCESS_COARSE_LOCATION: granted=true
Click to expand...
Click to collapse
Notice the bit from the dump I left in the quote. These permissions are not granted:
Code:
android.permission.ACCESS_MOCK_LOCATION
android.permission.INSTALL_LOCATION_PROVIDER
android.permission.WRITE_SECURE_SETTINGS
android.permission.UPDATE_APP_OPS_STATS
What have you done so far?
Maybe make a companion app that helps with this? Not sure how one would do that though.
Would you believe I didn't notice BetterBatteryStats was missing permissions? :silly: I thought it was no longer necessary as the How-to & FAQ in the main BBS thread states it does not require the system app anymore.
However, it turns out (at least on Oreo) it is still necessary. I noticed these required permissions are not being granted:
android.permission.DUMP
android.permission.READ_LOGS
android.permission.DEVICE_POWER
You can verify the permissions are granted (or not) by going to BBS Settings > Advanced > Install as system app.
I updated the module to support the Play Store version and the XDA Edition. Download in the OP.
@chamonix The above permissions will also need to be granted via adb for those running BBS on a non-rooted device.
Thanks to @kd- for figuring this out :good:
yochananmarqos said:
Would you believe I didn't notice BetterBatteryStats was missing permissions? :silly: I thought it was no longer necessary as the How-to & FAQ in the main BBS thread states it does not require the system app anymore.
However, it turns out (at least on Oreo) it is still necessary. I noticed these required permissions are not being granted:
android.permission.DUMP
android.permission.READ_LOGS
android.permission.DEVICE_POWER
You can verify the permissions are granted (or not) by going to BBS Settings > Advanced > Install as system app.
I updated the module to support the Play Store version and the XDA Edition. Download in the OP.
@chamonix The above permissions will also need to be granted via adb for those running BBS on a non-rooted device.
Thanks to @kd- for figuring this out :good:
Click to expand...
Click to collapse
what version are you using and are there features not working when these perms are missing?
chamonix said:
what version are you using and are there features not working when these perms are missing?
Click to expand...
Click to collapse
I'm using the 2.2.2 XDA Edition. I see a lot more stats with those permissions than without. They are automatically granted when BBS is a system app on Nougat and below, however they are not on Oreo. See the link in the OP to the documentation. Also, @kd- was not able to see Partial Wakelocks until he enabled those permissions with my module. I don't know if he tried forcing the API method or not.
Seeing how this isn't the best place to troubleshoot BBS, shall we continue in the BBS thread? Mention me there if you want to do that.
How do you install this module? I downloaded the zip. Unzipped, edited the xml files as needed, rezipped and tried to install through Magisk app as a module. It said it's not a valid Magisk module.
I'm a little new to Magisk, so I'm sure this is a me issue... any guidance you can provide is appreciated.
robbieas said:
How do you install this module? I downloaded the zip. Unzipped, edited the xml files as needed, rezipped and tried to install through Magisk app as a module. It said it's not a valid Magisk module.
I'm a little new to Magisk, so I'm sure this is a me issue... any guidance you can provide is appreciated.
Click to expand...
Click to collapse
It installed fine in Magisk Manager for me. Try flashing it in recovery.
Sent from my Nexus 5X using XDA Labs
yochananmarqos said:
It installed fine in Magisk Manager for me. Try flashing it in recovery.
Sent from my Nexus 5X using XDA Labs
Click to expand...
Click to collapse
As suspected, user error.... When I rezipped things I zipped the folder not the files, so everything was buried a level too deep.
This worked like a charm and got Tasker Tether working on stock rooted Oreo on a 6p. Thanks!
robbieas said:
As suspected, user error.... When I rezipped things I zipped the folder not the files, so everything was buried a level too deep.
This worked like a charm and got Tasker Tether working on stock rooted Oreo on a 6p. Thanks!
Click to expand...
Click to collapse
I'm glad you found it useful. :good:
Sent from my Nexus 5X using XDA Labs
robbieas said:
As suspected, user error.... When I rezipped things I zipped the folder not the files, so everything was buried a level too deep.
This worked like a charm and got Tasker Tether working on stock rooted Oreo on a 6p. Thanks!
Click to expand...
Click to collapse
Do you mind sharing how you got tether working with tasker and Oreo? I'm struggling to get it working on my Pixel 2.
I've tried just tasker alone, securetask, and nougat+ taker tether control and I just can't get it to work. (Manually toggling via the navigation tile works fine, just not programmatically.)
Sent from my Pixel 2 using Tapatalk
I fought with this forever, especially after 7.1 it became a real hassle. I feel your pain. But I think I've gotten it figured out at this point and happy to help. My use case is for my in-dash Nexus 7 tablet. I leave BT on, and anytime I get in my car it connects to my car stereo, and Tasker turns on my hotspot when it sees I connect to that BT device.
Start with the Tasker plugin "Nougat+ Tasker Tethering Control". This will show up in Tasker under plugins. First time you add it to a task, when you go to configuration you'll see a request to install it to system - do that and reboot.
Now go back to Tasker and and test run the task. If you get an error about "android.permission.TETHER_PRIVILEGED", then flash the attached module in Magisk and reboot. This should give Tasker Tether the permissions it needs to turn hotspot on/off. It worked perfectly for me.
Let me know if you have any issues and I'll help if at all possible. Also this assumes that you can turn on hotspot manually and it works.... this is not a way to get hotspot working if your carrier is blocking it, this just allows Tasker to automate the process.
use aapt to dump app permissions
Code:
aapt d permissions myapp.apk
Innfinite4evr said:
use aapt to dump app permissions
Code:
aapt d permissions myapp.apk
Click to expand...
Click to collapse
Right, but the whole point here is finding out which permissions are not being granted when an app is systemized via Magisk.
Accidental duplicate post.
Cool, I'll try to use it for Mi Fit app that seems to be kicked by Oreo. But right now, ADB seems broken on my device.
If someone kind enought could help me for the list of autorisation to give, I'd be very gratefull !
Kéno40 said:
Cool, I'll try to use it for Mi Fit app that seems to be kicked by Oreo. But right now, ADB seems broken on my device.
If someone kind enought could help me for the list of autorisation to give, I'd be very gratefull !
Click to expand...
Click to collapse
How would Mi Fit benefit from being a system app? I used it with my Mi Band 2 (before I lost it) on Oreo with no issues.
Sent from my LG G5 using XDA Labs
yochananmarqos said:
How would Mi Fit benefit from being a system app? I used it with my Mi Band 2 (before I lost it) on Oreo with no issues.
Sent from my LG G5 using XDA Labs
Click to expand...
Click to collapse
I suspect that doze "hibernate" MiFit while my watch is to far from my Phone. I've tried some things but still the same. I thought that systemize it would help.
If your experience is verified, it lets me 2 options :
- It's software, but rom related
- it's my watch...
Hello, everyone.
Few days ago, I found Hanabank app (com.hanabank.ebk.channel.android.hananbank) detects Magisk hide. I ran strace against Hanabank app, and I got some suspicious openat(2) returns -EACCES and even some files are not filtered by Magisk Hide (returns file descriptor successfully)
Here are openat(2) calls which don't look good.
Code:
[pid 27855] openat(AT_FDCWD, "/sbin_orig/magisk", O_RDONLY|O_LARGEFILE) = 91
[pid 27855] openat(AT_FDCWD, "/dev/magisk/mirror/system", O_RDONLY|O_LARGEFILE) = -1 EACCES (Permission denied)
[pid 27855] openat(AT_FDCWD, "/magisk", O_RDONLY|O_LARGEFILE) = -1 EACCES (Permission denied)
[pid 27855] fstatat64(AT_FDCWD, "99-magisk.sh", {st_mode=S_IFREG|0755, st_size=2011, ...}, 0) = 0
Full strace log of Hanabank app:
Code:
https://pastebin.com/BUiViAbK
I think they should return -ENOENT to pass that magisk detection routine.
I'm using Magisk v14.0
BTW, why Magisk Github issue tracker is disabled?
Having the same issue but with another app.
https://forum.xda-developers.com/showpost.php?p=73968022&postcount=19348
How did you run strace? I used strace -f -p PID-o /sdcard/strace.txt but no reference to Magisk is shown.
olivercervera said:
Having the same issue but with another app.
https://forum.xda-developers.com/showpost.php?p=73968022&postcount=19348
How did you run strace? I used strace -f -p PID-o /sdcard/strace.txt but no reference to Magisk is shown.
Click to expand...
Click to collapse
First, sorry for late reply. I was on vacation.
I used this script to attach strace to fresh app process.
Code:
while true; do
while ! ps | grep -q -i $1; do :; done;
ps | grep -i $1 | while read a b c; do
strace -e open -f -e trace=file,ptrace -p $b 2>&1;
done;
done
For example, if you saved this script as /sdcard/strace.sh, The procedure I take to attach strace to the app is;
1. use killall command to kill all app process. Android pre-forks app, so we need to kill that first.
2. run script using sh /sdcard/strace.sh <app_process_name>. This will attach strace to the app and redirects strace's stderr output to stdout.
2-1. Do whatever you want (use tee or just redirect it to file, etc..) with stdout stream.
3. Analyze collected result.
That's all.
perillamint said:
First, sorry for late reply. I was on vacation.
I used this script to attach strace to fresh app process.
Click to expand...
Click to collapse
Hi
Just now I realised that I responded in the other thread. However your script never worked
I ran the script in a shell with root permission using
Code:
sh /sdcard/strace.sh com.barclays.android.barclaysmobilebanking
Unfortunately this is what I get when I try to run the script
Code:
/sdcard/strace.sh[5]: syntax error: 'done' unexpected
What have I done wrong?
EDIT: I've done this test on another device, a Nexus 5X stock 7.1.2 + Magisk v14. If I run strace it is not found, I have installed busybox but nothing! WAT??? I'll test with the other device later which has strace (Nexus 5).
EDIT2: Nope, I get the same error on the device which has strace.
olivercervera said:
Hi
Just now I realised that I responded in the other thread. However your script never worked
I ran the script in a shell with root permission using
Code:
sh /sdcard/strace.sh com.barclays.android.barclaysmobilebanking
Unfortunately this is what I get when I try to run the script
Code:
/sdcard/strace.sh[5]: syntax error: 'done' unexpected
What have I done wrong?
EDIT: I've done this test on another device, a Nexus 5X stock 7.1.2 + Magisk v14. If I run strace it is not found, I have installed busybox but nothing! WAT??? I'll test with the other device later which has strace (Nexus 5).
EDIT2: Nope, I get the same error on the device which has strace.
Click to expand...
Click to collapse
Hmm, I used sh which included in LineageOS.... I think Android's default sh couldn't handle that script's syntax properly. Default sh is quite crippled compared to GNU/Linux's one (bash, zsh, etc..)
Could you try running this script using bash instead of sh? If you don't have bash on your Android system, this Magisk module could inject bash binary into your system. https://forum.xda-developers.com/apps/magisk/module-magisk-bash-shell-t3609988
perillamint said:
Hmm, I used sh which included in LineageOS.... I think Android's default sh couldn't handle that script's syntax properly. Default sh is quite crippled compared to GNU/Linux's one (bash, zsh, etc..)
Could you try running this script using bash instead of sh? If you don't have bash on your Android system, this Magisk module could inject bash binary into your system. https://forum.xda-developers.com/apps/magisk/module-magisk-bash-shell-t3609988
Click to expand...
Click to collapse
Thanks for your suggestion. In the end I installed LOS on my test device and ran the script.
The funny thing is that I can't find a single reference to Magisk or Root...
The output is attached.
olivercervera said:
Thanks for your suggestion. In the end I installed LOS on my test device and ran the script.
The funny thing is that I can't find a single reference to Magisk or Root...
The output is attached.
Click to expand...
Click to collapse
Indeed. However the app dies shortly after reading the two property files:
/dev/__properties__/ubject_r:default_prop:s0
/dev/__properties__/ubject_r:logd_prop:s0
I would try to get the output of getprop with and without Magisk installed and see if there are any properties being leaked that could give a hint that Magisk is installed.
Fif_ said:
Indeed. However the app dies shortly after reading the two property files:
/dev/__properties__/ubject_r:default_prop:s0
/dev/__properties__/ubject_r:logd_prop:s0
I would try to get the output of getprop with and without Magisk installed and see if there are any properties being leaked that could give a hint that Magisk is installed.
Click to expand...
Click to collapse
You are the man! You definitely spotted the method being used by this app. Thanks.
I had to leave LOS ROM because even without Magisk it would not run, so I installed another ROM. I verified the app runs, got props, installed Magisk and got new props.
There are all changes:
1. [ro.build.selinux]: [1] is changed to [ro.build.selinux]: [0] when Magisk is installed
2. [ro.runtime.firstboot] shows different values but I believe it's fine
3. The following are entirely missing when Magisk is installed
[selinux.reload_policy]: [1]
[service.adb.tcp.port]: [-1]
[sys.retaildemo.enabled]: [0]
[init.svc.clear-bcb]: [stopped]
I have the feeling that [ro.build.selinux]: [1] and [selinux.reload_policy]: [1] are key elements and Magisk is not hiding them properly. I would suppose these elements show that SELinux is not enforcing anymore. I tried changing these values, but at reboot they don't change.
I know obviously Magisk does not enforce SELinux, but hides that got set to Permissive. System thinks that is enforcing, and using command getenforce i get as a result Enforcing, but Barclays (and possibly other apps) are reading that SELinux is not actually being enforced.
Interesting. Will post these finding in the main thread.
Do you have anything to add that could be helpful?
olivercervera said:
You are the man! You definitely spotted the method being used by this app. Thanks.
I had to leave LOS ROM because even without Magisk it would not run, so I installed another ROM. I verified the app runs, got props, installed Magisk and got new props.
There are all changes:
1. [ro.build.selinux]: [1] is changed to [ro.build.selinux]: [0] when Magisk is installed
2. [ro.runtime.firstboot] shows different values but I believe it's fine
3. The following are entirely missing when Magisk is installed
[selinux.reload_policy]: [1]
[service.adb.tcp.port]: [-1]
[sys.retaildemo.enabled]: [0]
[init.svc.clear-bcb]: [stopped]
I have the feeling that [ro.build.selinux]: [1] and [selinux.reload_policy]: [1] are key elements and Magisk is not hiding them properly. I would suppose these elements show that SELinux is not enforcing anymore. I tried changing these values, but at reboot they don't change.
I know obviously Magisk does not enforce SELinux, but hides that got set to Permissive. System thinks that is enforcing, and using command getenforce i get as a result Enforcing, but Barclays (and possibly other apps) are reading that SELinux is not actually being enforced.
Interesting. Will post these finding in the main thread.
Do you have anything to add that could be helpful?
Click to expand...
Click to collapse
If you use "resetprop ro.build.selinux 1" in a root shell, does the app start?
That will disappear at reboot of course, but it's easy to add to /magisk/.core/props to make it stick until Magisk is fixed.
Now, I don't think Magisk disables SELinux, why do you have it disabled?
Fif_ said:
If you use "resetprop ro.build.selinux 1" in a root shell, does the app start?
That will disappear at reboot of course, but it's easy to add to /magisk/.core/props to make it stick until Magisk is fixed.
Now, I don't think Magisk disables SELinux, why do you have it disabled?
Click to expand...
Click to collapse
Yes, Magisk changes SELinux to Permissive and hides this status.
Although my findings would be legit and those props should be hidden, in my Bank's case is not the issue.
I have discovered that if I uninstall Magisk Manager (but not uninstall root, just the app) my bank app works. However it does not work if I use "Hide Magisk".
Since the hidden app is called Unhide Magisk Manager, probably this app is looking for Magisk keyword.
For whatever reason when I run strace the app does crash and always reports that message (crash after reading prop).
I will post these findings in the support thread.
I don't know how to do it, but I would recompile Magisk Manager changing package ID and name, in theory should work.
I am having the same issue on my Galaxy S8 with the Barclays Mobile Banking app. I have tried using every option in Magisk but nothing seems to be working. In fact, the Barclays app actually asked for SU permissions when I first ran it which is odd to me.
Did anyone find a workaround for this? I read the posts in this thread but I am not savvy enough to understand all the codes and technical information written, so please excuse my ignorance in the matter. Is reverting to a completely stock ROM my only option at this point? I really need to start using this application as soon as possible.
Thank you.
Quick update guys!
The great Topjohnwu is working on a new update that includes a key feature for us: reinstalling Magisk Manager with a random package ID.
These changes are in his Github Repo. On this thread you can find unofficial versions of Magisk compiled from Github.
I have tested Magisk-v14.4-20171102-091345.zip: HELL IT WORKS!
In Magisk Manager: go to settings and you will have the option to reinstall Magisk Manager with a random package ID
Install Barclays from Play Store
Add Barclays to Magisk Hide
Open Barclays, it will behave correctly and will work!
This solves my problem, so I will be able to use the latest version of this app very soon (will wait for public beta).
On a side note, this update should als hide /Magisk partition, which was detected by @perillamint banking app, so might be worth trying it.
I have installed this Hanabank app (hopefully is the right one!) and added it to Magisk Hide. The app opens up correctly but I can't understand anything. I see some stuff moving on screen and on the upper left I see a lock icon (to login?)
If I don't add the app to Magisk Hide it shows an incomprehensible message and closes.
Hope you find this helpful.
Please see photos below.
@olivercervera
What are your exact steps? I installed the latest version from this thread, and added barclays to magisk hide, and then in settings, clicked in hide magisk manager. When I clicked in unhide magisk manager, it asked me for root permision for something with a random name, so I guess it worked, but I couldn't get the Barclays app to run. Is that a fresh install of your phone? I remember that if it detected your root once, it would be blocked forever, until you get a new ID. Did you call barclays to get your app working again?
On top of that, I clicked on hide magisk manager again, and now I can't unhide it, the app does nothing when I click on it... :crying:
Thanks for your help in any case, and thanks for the tip regading the new functionality!
mundodisco8 said:
@olivercervera
What are your exact steps? I installed the latest version from this thread, and added barclays to magisk hide, and then in settings, clicked in hide magisk manager. When I clicked in unhide magisk manager, it asked me for root permision for something with a random name, so I guess it worked, but I couldn't get the Barclays app to run. Is that a fresh install of your phone? I remember that if it detected your root once, it would be blocked forever, until you get a new ID. Did you call barclays to get your app working again?
On top of that, I clicked on hide magisk manager again, and now I can't unhide it, the app does nothing when I click on it... :crying:
Thanks for your help in any case, and thanks for the tip regading the new functionality!
Click to expand...
Click to collapse
Yes, a fresh start from a stock Nexus 5X I have at work. I did not register the app with my account during the test, all I needed to do was to get to the Welcome Screen: if Barclays detects root you don't get anything. Probably you need to reinstall Barclays App.
Once Magisk Manager is hidden with the new ID you can't go back to the original: you don't have any option. So if you still have it means there is a problem.
mundodisco8 said:
@olivercervera
What are your exact steps? I installed the latest version from this thread, and added barclays to magisk hide, and then in settings, clicked in hide magisk manager. When I clicked in unhide magisk manager, it asked me for root permision for something with a random name, so I guess it worked, but I couldn't get the Barclays app to run. Is that a fresh install of your phone? I remember that if it detected your root once, it would be blocked forever, until you get a new ID. Did you call barclays to get your app working again?
On top of that, I clicked on hide magisk manager again, and now I can't unhide it, the app does nothing when I click on it... :crying:
Thanks for your help in any case, and thanks for the tip regading the new functionality!
Click to expand...
Click to collapse
He's talking about a new Hide Manager feature that is much improved from the current implementation. It's not yet available officially, so you'll have to build yourself from the GitHub repo, or download from the unofficial snapshots thread that @olivercervera linked.
Didgeridoohan said:
He's talking about a new Hide Manager feature that is much improved from the current implementation. It's not yet available officially, so you'll have to build yourself from the GitHub repo, or download from the unofficial snapshots thread that @olivercervera linked.
Click to expand...
Click to collapse
I didn't even consider the possibility he didn't realise I was using the unofficial/self compiled version... I even linked it!!!
Thanks
olivercervera said:
I didn't even consider the possibility he didn't realise I was using the unofficial/self compiled version... I even linked it!!!
Thanks
Click to expand...
Click to collapse
It's actually quite apparent that he's talking about the current implementation, since the updated, unreleased, feature doesn't have anything named "unhide" to click.
With the new implementation you unhide the hidden Manager by reinstalling and opening it.
Hi guys,
Yes, I installed the latest version, following the link OliverCervera linked. I hid it using the usual method of going to options/hide magisk, and I got a new app, as usual. clicking on it to unhide prompted for root permissions for an app with a random ID (as expected). The next time, I wasn't that lucky, and the whole thing crashed. Anyway, it's a nightly, so I won't complain, and I will check it later, as sadly I don't have time to do it now.
In any case, my app was marked, because I opened it with the official release of Magisk and it detected root, and once it does, it keeps the "this phone is rooted" status until you do a factory reset. I think you can call them to tell them that it was a mistake, and they can unlock it but I'm not 100% sure about this last point.
Thanks for the work, anyway!
mundodisco8 said:
Hi guys,
Yes, I installed the latest version, following the link OliverCervera linked. I hid it using the usual method of going to options/hide magisk, and I got a new app, as usual. clicking on it to unhide prompted for root permissions for an app with a random ID (as expected). The next time, I wasn't that lucky, and the whole thing crashed. Anyway, it's a nightly, so I won't complain, and I will check it later, as sadly I don't have time to do it now.
In any case, my app was marked, because I opened it with the official release of Magisk and it detected root, and once it does, it keeps the "this phone is rooted" status until you do a factory reset. I think you can call them to tell them that it was a mistake, and they can unlock it but I'm not 100% sure about this last point.
Thanks for the work, anyway!
Click to expand...
Click to collapse
If you install the correct version of the Manager you won't have an unhide app after hiding the Manager. That's changed...
Your problem is probably that the unofficial Manager has a different signature, so it won't install over the official Manager. Solution: Uninstall the official Manager before installing the unofficial snapshot.
Have you tried just clearing all data for the app after it detects root? That usually works for an app that "remembers" root. But, I've never tested the app in question so...
Didgeridoohan said:
If you install the correct version of the Manager you won't have an unhide app after hiding the Manager. That's changed...
Your problem is probably that the unofficial Manager has a different signature, so it won't install over the official Manager. Solution: Uninstall the official Manager before installing the unofficial snapshot.
Have you tried just clearing all data for the app after it detects root? That usually works for an app that "remembers" root. But, I've never tested the app in question so...
Click to expand...
Click to collapse
I think they keep your signature and store it on their servers. Barclays is really focused when it comes to not allowing people to use their app on rooted phones, but as I said, I would need to double check. And I kind of get why they do it, as they went all the way to avoid to pay Android to use Android Pay and they developed their own platform to pay over NFC (not judging here, it's up to them if they think it's the best solution). At the end of the day, root is exploited through a security flaw, and "the bad guys could get your moneys", and even though they could display a message at launch that says "hey, you are rooted, the bad guys could get AAAALLL of the moneys, it's up to you" people would still want to sue them if they mess up... but it's funny that they allow you to get into the online banking web on a rooted phone, where the bad guys could see your password...
@topjohnwu
Its been long i have been experiencing this same problem since magisk v15 and i am not the one who is getting this issue.
When you flash magisk everything is fine and you get su prompt without any issue.
But if you see after sometime maybe like 10 or15days its not sure it comes random and new app you install yoj never get prompt of su request.
Issue in magisk log is same as others
04-26 07:54:08.656 26879 26879 E Magisk : write failed with 32: Broken pipe
04-26 07:54:23.254 27099 27099 W Magisk : su: request rejected (10240->0)
04-26 07:54:57.742 27473 27473 W Magisk : su: request rejected (10230->0)
04-26 07:55:06.003 27527 27527 E Magisk : write failed with 32: Broken pipe
04-26 07:55:12.932 27541 27541 W Magisk : su: request rejected (10262->0)
04-26 07:55:18.934 27571 27571 W Magisk : su: request rejected (10211->0)
04-26 07:55:26.091 27612 27612 W Magisk : su: request rejected (10217->0)
04-26 07:55:26.093 27613 27613 W Magisk : su: request rejected (10217->0)
04-26 07:58:20.432 27670 27670 W Magisk : su: request rejected (10211->0)
Click to expand...
Click to collapse
that 10412 is random number maybe uid
But saved su request apps keeps working as fine they can execute su commands which are saved in magisk manager but new apps never get the prompt.
So i think this issue is somewhat related to magisk manager app which doesnot repond, even though i have made sure magisk manager is in my recent app not killed still no prompts.
Now i am fed up with this so posted this issue.
The only thing which works for me i have taken data backup of magisk manager and restore it so my apps stays working fine.
Temp fix whivh always work for me is i have tk flash system image in twrp backup restore and then after sometime after reboot magisk shows prompt, dont know whats this.
My devices are s7 and s9+ exynos same issue on both since v15 i started using magisk.
Full logs attached.
I think I faced the same issue (or at least something similar) two or three times, I will try to get some logs for the next time.
This needs to be analyzed properly every user gets this but we ignore wven for me it is not working even after jninstalling and installing magisk
Every user is not experience this... As an example, I've never seen it. But, that doesn't mean that there isn't an issue, of course.
You're completely correct that it would need further analysis to know what's going on with your device. To me it sounds like your system is killing of the Magisk daemon (or something similar).
Your mention that you have to reflash the system to get things working, but that sounds a bit drastic. What else have you tried? Have you tried simply force closing the Magisk Manager, etc?
And of course, if you're really serious about analysing things you'll have to grab logs showing exactly what's going on.
Didgeridoohan said:
Every user is not experience this... As an example, I've never seen it. But, that doesn't mean that there isn't an issue, of course.
You're completely correct that it would need further analysis to know what's going on with your device. To me it sounds like your system is killing of the Magisk daemon (or something similar).
Your mention that you have to reflash the system to get things working, but that sounds a bit drastic. What else have you tried? Have you tried simply force closing the Magisk Manager, etc?
And of course, if you're really serious about analysing things you'll have to grab logs showing exactly what's going on.
Click to expand...
Click to collapse
hi this issue has been reported many times in this magisk sections you can search and find this,even google search can brings many issues like this.
i dont know what fixes the issue cus nothing works, but flashing system and starting then popup doesnot come immediately it takes time to come even when you ran app 5mins back then back to normal
full magisk logs attached
BytesReverser said:
hi this issue has been reported many times in this magisk sections you can search and find this,even google search can brings many issues like this.
i dont know what fixes the issue cus nothing works, but flashing system and starting then popup doesnot come immediately it takes time to come even when you ran app 5mins back then back to normal
full magisk logs attached
Click to expand...
Click to collapse
I've seen reports of it, yes, but it's far from a universal issue. The main problem is that the required details for any kind of "fix" generally is missing from the reports (just a plain Magisk log is usually inadequate).
My guess is that it's likely caused by to aggressive OEM implementations of battery optimisation or the likes thereof.
Didgeridoohan said:
I've seen reports of it, yes, but it's far from a universal issue. The main problem is that the required details for any kind of "fix" generally is missing from the reports (just a plain Magisk log is usually inadequate).
My guess is that it's likely caused by to aggressive OEM implementations of battery optimisation or the likes thereof.
Click to expand...
Click to collapse
I have already added magisk manager to unoptimized apps in battery, dont know what is wrong only @topjohnwu can help.
Right now i didnot flashed system because i want to figure jt out whh this is happening, i can test if topjohnwu guides what he needs
hope topjohnwu will fix it soon
I managed to get it work again. Sharing what i did in sequence:
1. Delete all module in magisk. Trash can icon. Reboot.
2. In magisk manager, uninstall > clear images. Reboot.
3. In magisk manager, uninstall > complete uninstall. Reboot automatically.
4. Reboot to recovery. Flash magisk uninstaller .zip. clear dalvik/cache. Reboot to system.
5. Install magisk manager apk. Reboot.
6. Reboot to recovery. Flash magisk 19.1 zip. Clear dalvik/cache. Reboot to system.
Try su at terminal trigger magisksu prompt after step 6.
Hope this helps.
I have a blu dash l 4.4.2 with twrp and I'm also facing this or similiar issue with su request rejected in log, permission denied in terminal, modules flash but magiskhide and superuser do not. I have tried many things with no luck.
No display over other apps, battery, or any other permission settings included. Only 20.4 flashes on my devices others say unsupported image format. 7.1.1 magisk manager seems to be only one which says additional update but then goes to setup failed. Magisk app settings others ok, tried toggling root access, canary settings crash. Have tried to copy and chmod rw 600 to libdirect file from another device to vendor and lib folders because my device does not appear to have it included. Minimal adb fastboot module tip no luck as well as reflashing stock.
Would like to try to add "(sleep) 1 to early_mount " as I read somewhere but not sure how exactly. No luck yet manually updating magisk.db but I am hoping there is someway to have it fully functioning automatically somehow. Any help much appreciated
i have the same issue ,i was rooting my huawei with magisk ..
To resolve this you need to go to magisk manager press install (the first one) ,recovery mode (if needed) and then direct install ,this worked for me
I recently downgraded my rog phone 3 from android 12 to android 11 while rooting it with twrp and magisk. After I did this, everything worked fine on my system (besides mms for a moment), once it is flashed, the first reboot afterwards completely stops bluetooth from functioning. No startup, nothing. The drivers are just nonfunctional I guess. Anyone else have this issue/ know how to solve? Not very fluent in this and just looking to fix this asap.
Also here is a logcat error that shows itself when I try to enable bluetooth.
FATAL EXCEPTION: BluetoothDatabaseManager
Process: com.android.bluetooth, PID: 2430
android.database.sqlite.SQLiteCantOpenDatabaseException: Cannot open database '/data/user_de/0/com.android.bluetooth/databases/bluetooth_db': Directory /data/user_de/0/com.android.bluetooth/databases doesn't exist
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:252)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:205)
at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:505)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:206)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:198)
at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:918)
at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:898)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:762)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:751)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:373)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableSupportDatabase(FrameworkSQLiteOpenHelper.java:145)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.java:106)
at androidx.room.RoomDatabase.inTransaction(RoomDatabase.java:476)
at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.java:281)
at com.android.bluetooth.btservice.storage.MetadataDao_Impl.load(MetadataDao_Impl.java:258)
at com.android.bluetooth.btservice.storage.MetadataDatabase.load(MetadataDatabase.java:95)
at com.android.bluetooth.btservice.storage.DatabaseManager$DatabaseHandler.handleMessage(DatabaseManager.java:124)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:248)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14 SQLITE_CANTOPEN): Could not open database
at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:224)
... 20 more
I really need help with this if anyone could spare the time.
I have dumped the same stock rom I installed and I have noticed it is missing the bluetooth APEX file. Is it even possible to install an APEX file without reinstalling an entire system? I know the format is similar to APK and i have read/write access to my system partition, so is it possible to do?
Try setting selinux to permissive (from a root command line, run "setenforce 0"). I have a similar issue (messed up permissions when downgrading and I'm trying to debug it now. I'm trying to figure out how to fix those permissions without disabling selinux entirely, as disabling it is a massive security hole.