eGate - Android MDM - Version 1.33 +

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

1 Like

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:

  1. System UI shows lock screen with LockPatternView
  2. eGate accessibility service starts traversing the tree
  3. Gets to LockPatternView node and calls getChild(i)
  4. Framework returns stale/corrupted AccessibilityNodeInfo with garbage virtualViewId = 0x2AAAAAAA (memory pattern)
  5. eGate recursively processes this corrupted node
  6. Framework tries to query bounds for virtualViewId 715827882 (0x2AAAAAAA)
  7. 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?

1 Like

@FlipAdmin?

Are features still being added?

Is there a point in requesting new ones?

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.

1 Like

New thread here: eGate - Android MDM - Version 1.35+

2 Likes