is there a way to disable the fake browser - so i can test links in apps to block them in hosts as a added level of security - might be overkill but i like to be thorough
ive been having an issue on the qin that when i try to add a google account when there is a lockscreen password the systemUI crashes. i ran a logcat and using ai i found that the issue was egate accseibilty service. i turned off the accseibiltiy for egate and i had no issue turned it back on and the issue was back. not sure what exactly the problem is but i can provide the logcat or anything else.
Is it a webview?
i dont think so it doesnt have the same symptoms as other apps that have webview. i have webview debugger enabled and i dont get a toast on the bottom - the system ui crashes entirly and i get a mesage saying it has stopped instead of just exiting out of the app like egate normaly does with webviews
i turned off webview blocking and i still get this crash. as long as the egate accseibilty service is on i get this crash
There’s a feature called block app with accessibility in egate did you use that for any apps
no i dont use that feature
if anyone can read this - i decompiled egate and ai claims this is the bug
● FOUND THE BUG!
The issue is in the recursive tree traversal at lines 655-692. The code traverses the accessibility node tree and calls getChild(i) to get child nodes:
Line 671: invoke-virtual {p1, v2}, Landroid/view/accessibility/AccessibilityNodeInfo;->getChild(I)Landroid/view/accessibility/AccessibilityNodeInfo;
Line 677: move-result-object v3
Line 683: invoke-virtual {p0, v3, v4, p3, p4}, Lcom/oss/egate/MyAccessibilityService;->a(…)V
The problem: The code doesn’t check if getChild() returns null. When the accessibility tree includes virtual views (like LockPatternView’s 9 pattern dots), the framework can return a
corrupted/stale node with an invalid virtualViewId.
Here’s what happens:
- System UI shows lock screen with LockPatternView
- eGate accessibility service starts traversing the tree
- Gets to LockPatternView node and calls getChild(i)
- Framework returns stale/corrupted AccessibilityNodeInfo with garbage virtualViewId = 0x2AAAAAAA (memory pattern)
- eGate recursively processes this corrupted node
- Framework tries to query bounds for virtualViewId 715827882 (0x2AAAAAAA)
- CRASH in getBoundsForVirtualView because row=238609293 is out of bounds
The fix: Add null check after getChild():
@FlipAdmin do you know what the issue.
p.s. i sent you a message about getting a reseller portal
@FlipAdmin, is egate.canny.io still alive?
I noticed that admin portal is still marked as planned over there.
If I want to make a feature request, should I do it here or over there?
Yes, it is still alive. My problem is that I have too many projects, and now they all need maintenance. I have a bunch of other things that I’ve been trying to wrap up.
New thread here: eGate - Android MDM - Version 1.35+