Forticlient not working

When I try to access my university’s VPN through Forticlient (which I am required to use) I get the following message: Unable to login: Chrome browser is not installed.

I tried installing chrome (with a lot of resentment) but that did not work either as the App Lounge refuses to install the browser (which I would applaude under any other circumstances).

I run /e/OS 1.81-20230204257076-e on a Teracube 2e.

I would appreciate some words of wisdom or the prospect of seeing this issue fixed.

the link to chrome probably fails when it tries to open the SSO page I guess? (used to, but have no forti sslvpn remote anymore to test).

Does it make a difference if you choose another browser (even Firefox) as default browser?

That’s a good idea but unfortunately it doesn’t solve the issue. Once I get back home, I’ll try to rename one of the browsers I don’t use “chrome” in the/bin directory (I’m coming from Linux, no idea if Android works in any way similar). Will post if it works.

Android works by appid at build time - renaming won’t do. You could attach “adb logcat” and see the intent / class that forticlient is calling the moment it shows you the error - will probably be an obvious fatal exception with appended stacktrace.

Thank you for the recommendation. Unfortunately – and as you might have suspected – I have no idea what I’m looking at…

What I got from running adb logcat *:E was the following:

03-22 22:58:58.051     0     0 E         : (5)[546:allocator@4.0-s][ION][ion_dbg] alloc_pages order=4 cache=0
03-22 22:59:06.987  4411  4411 E Toast   : setGravity() shouldn't be called on text toasts, the values won't be used

Now, I have no idea what to do with this information. So in addition I tried the following:
adb logcat *:W (Warnings)

and I got:

03-22 23:45:34.497     0     0 E         : (4)[546:allocator@4.0-s][ION][ion_dbg] alloc_pages order=4 cache=0
03-22 23:45:43.112  1074 18699 W ActivityTaskManager: Tried to set launchTime (0) < mLastActivityLaunchTime (383698553)
03-22 23:45:43.210  6116  6116 E Toast   : setGravity() shouldn't be called on text toasts, the values won't be used
03-22 23:45:43.293  1074  1129 W ActivityTaskManager: Tried to set launchTime (0) < mLastActivityLaunchTime (383781267)

adb logcat *:F (Fatal) did not give me anything.

Looking for errors/warnings with connection to forticlient (grep be praised!), I found the following:

03-22 23:44:13.949  6116  6116 E forticlient_vp: Not starting debugger since process cannot load the jdwp agent.
03-22 22:49:49.366  1074  9213 W NotificationService: Toast already killed. pkg=com.fortinet.forticlient_vpn token=android.os.BinderProxy@3c3589c

If you – or anyone more knowledgeable than me – can make any sense of this that would be great.

toast is some UI element? I think the info/debug severity log lines might be more helpful then error or warning. If you can post a whole logcat I’ll have a look. You might get more of an idea to check with the pid of Forticlient (in your log seems to be 6116) what lead up to the crash.

You’re absolutely right. Looking at what I posted above, nothing useful seems to be found: Toast refers to the pop-up that tells me that Chrome is not installed.

Looking for the PID (which changed, probably because of a reboot), I get:

  03-23 13:58:03.660   545   545 D Zygote  : Forked child process 17189
03-23 13:58:03.663  1102  1154 I ActivityManager: Start proc 17189:com.fortinet.forticlient_vpn/u0a209 for pre-top-activity {com.fortinet.forticlient_vpn/com.fortinet.forticlient_vpn.start.StartActivity}
03-23 13:58:03.685 17189 17189 E forticlient_vp: Not starting debugger since process cannot load the jdwp agent.
03-23 13:58:03.772 17189 17189 D NetworkSecurityConfig: No Network Security Config specified, using platform default
03-23 13:58:03.772 17189 17189 D NetworkSecurityConfig: No Network Security Config specified, using platform default
03-23 13:58:03.797 17189 17189 I MultiDex: VM with version 2.1.0 has multidex support
03-23 13:58:03.797 17189 17189 I MultiDex: Installing application
03-23 13:58:03.797 17189 17189 I MultiDex: VM has multidex support, MultiDex support library is disabled.
03-23 13:58:03.797 17189 17189 I MultiDex: Installing application
03-23 13:58:03.797 17189 17189 I MultiDex: VM has multidex support, MultiDex support library is disabled.
03-23 13:58:03.810 17189 17189 W FirebaseApp: Default FirebaseApp failed to initialize because no default options were found. This usually means that com.google.gms:google-services was not applied to your gradle project.
03-23 13:58:03.811 17189 17189 I FirebaseInitProvider: FirebaseApp initialization unsuccessful
03-23 13:58:03.816 17189 17189 D WM-WrkMgrInitializer: Initializing WorkManager with default configuration.
03-23 13:58:03.831 17189 17189 I TetheringManager: registerTetheringEventCallback:com.fortinet.forticlient_vpn
03-23 13:58:03.894 17189 17216 D libMEOW : meow reload base cfg path: na
03-23 13:58:03.894 17189 17216 D libMEOW : meow reload overlay cfg path: na
03-23 13:58:03.896 17189 17216 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 13:58:03.896 17189 17216 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 13:58:03.963 17189 17217 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 13:58:03.964 17189 17217 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 13:58:04.038 17189 17219 D FortiClient VPN: Tarball extracting...
03-23 13:58:04.103 17189 17189 D FortiClient VPN: Tarball installed
03-23 13:58:04.161 17189 17214 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 13:58:04.161 17189 17214 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 13:58:04.180 17189 17214 I libMEOW_gift: ctx:0xb4000073bf048500, ARC not Enabled.
03-23 13:58:04.193 17189 17214 E ion     : ioctl c0044901 failed with code -1: Invalid argument
03-23 13:58:04.259   592   659 W ServiceManager: Permission failure: android.permission.ACCESS_SURFACE_FLINGER from uid=10209 pid=17189
03-23 13:58:04.280 17189 17225 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 13:58:04.280 17189 17225 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 13:58:04.328 17189 17226 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 13:58:04.328 17189 17226 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 13:58:04.547 17189 17189 E ThemeUtils: View class androidx.appcompat.widget.AppCompatImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 13:58:04.549 17189 17189 E ThemeUtils: View class androidx.appcompat.widget.AppCompatTextView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 13:58:04.550 17189 17189 E ThemeUtils: View class androidx.appcompat.widget.AppCompatImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 13:58:04.576 17189 17189 E ThemeUtils: View class androidx.appcompat.widget.AppCompatImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 13:58:04.577 17189 17189 E ThemeUtils: View class androidx.appcompat.widget.AppCompatTextView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 13:58:04.577 17189 17189 E ThemeUtils: View class androidx.appcompat.widget.AppCompatImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 13:58:04.609 17189 17189 E ThemeUtils: View class androidx.appcompat.widget.AppCompatImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 13:58:04.610 17189 17189 E ThemeUtils: View class androidx.appcompat.widget.AppCompatTextView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 13:58:04.610 17189 17189 E ThemeUtils: View class androidx.appcompat.widget.AppCompatImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 13:58:05.729 17189 17203 W System  : A resource failed to call release. 
03-23 13:58:05.729 17189 17203 W System  : A resource failed to call release. 
03-23 13:58:08.245 17189 17214 I GED     : ged_boost_gpu_freq, level 100, eOrigin 2, final_idx 2, oppidx_max 2, oppidx_min 0
03-23 13:58:13.279 17189 17240 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 13:58:13.279 17189 17240 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 13:58:13.338 17189 17241 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 13:58:13.338 17189 17241 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 13:58:13.396 17189 17242 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 13:58:13.397 17189 17242 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 13:58:15.780 17189 17214 I GED     : ged_boost_gpu_freq, level 100, eOrigin 2, final_idx 2, oppidx_max 2, oppidx_min 0
03-23 13:58:16.138  1102  1146 I ActivityManager: Killing 17189:com.fortinet.forticlient_vpn/u0a209 (adj 905): remove task
03-23 13:58:16.189   545   545 I Zygote  : Process 17189 exited due to signal 9 (Killed)

To make sure I got everything I kicked Forticlient and tried to start in anew before logging.

But – what is way more interesting is what I got looking for “chrome”:

  03-23 12:35:37.930  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to foundation.e.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 12:35:37.930  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to com.brave.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 12:46:09.844  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to foundation.e.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 12:46:09.844  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to com.brave.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 13:27:13.240  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to foundation.e.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 13:27:13.240  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to com.brave.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 13:45:04.411  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to foundation.e.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 13:45:04.411  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to com.brave.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 13:49:56.432  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to foundation.e.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 13:49:56.432  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to com.brave.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 13:56:13.149  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to foundation.e.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 13:56:13.149  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to com.brave.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 13:57:27.193  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to foundation.e.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 13:57:27.194  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to com.brave.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 13:58:30.463  1895 17293 D NetworkMonitor/107: PROBE_HTTP http://connectivity.murena.io time=54ms ret=204 request={Connection=[close], User-Agent=[Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.32 Safari/537.36]} headers={null=[HTTP/1.1 204 No Content], cache-control=[no-cache], connection=[close], X-Android-Received-Millis=[1679576310460], X-Android-Response-Source=[NETWORK 204], X-Android-Selected-Protocol=[http/1.1], X-Android-Sent-Millis=[1679576310440]}
03-23 13:58:30.507  1895 17292 D NetworkMonitor/107: PROBE_HTTPS https://connectivity.murena.io time=95ms ret=204 request={Connection=[close], User-Agent=[Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.32 Safari/537.36]} headers={null=[HTTP/1.1 204 No Content], cache-control=[no-cache], connection=[close], X-Android-Received-Millis=[1679576310504], X-Android-Response-Source=[NETWORK 204], X-Android-Selected-Protocol=[http/1.1], X-Android-Sent-Millis=[1679576310473]}
03-23 13:59:51.084  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to foundation.e.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 13:59:51.085  1102  1153 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.USER_PRESENT flg=0x24200010 } to com.brave.browser/org.chromium.chrome.browser.sharing.click_to_call.ClickToCallMessageHandler$PhoneUnlockedReceiver
03-23 13:59:52.763  1895 17416 D NetworkMonitor/108: PROBE_HTTP http://connectivity.murena.io time=36ms ret=204 request={Connection=[close], User-Agent=[Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.32 Safari/537.36]} headers={null=[HTTP/1.1 204 No Content], cache-control=[no-cache], connection=[close], X-Android-Received-Millis=[1679576392762], X-Android-Response-Source=[NETWORK 204], X-Android-Selected-Protocol=[http/1.1], X-Android-Sent-Millis=[1679576392749]}
03-23 13:59:52.799  1895 17415 D NetworkMonitor/108: PROBE_HTTPS https://connectivity.murena.io time=69ms ret=204 request={Connection=[close], User-Agent=[Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.32 Safari/537.36]} headers={null=[HTTP/1.1 204 No Content], cache-control=[no-cache], connection=[close], X-Android-Received-Millis=[1679576392796], X-Android-Response-Source=[NETWORK 204], X-Android-Selected-Protocol=[http/1.1], X-Android-Sent-Millis=[1679576392770]}
03-23 14:03:46.554  1102  3054 I ActivityTaskManager: START u0 {act=android.intent.action.VIEW dat=https<MY-VPN>... pkg=com.android.chrome (has extras)} from uid 10209
03-23 14:03:46.581 17546 17546 D nativeloader: classloader namespace configured for unbundled product apk. library_path=/product/app/BrowserWebView/lib/arm64:/product/app/BrowserWebView/BrowserWebView.apk!/lib/arm64-v8a:/product/app/TrichromeLibrary/TrichromeLibrary.apk!/lib/arm64-v8a:/product/lib64:/system/product/lib64
03-23 14:03:46.589 17546 17546 D nativeloader: classloader namespace configured for unbundled product apk. library_path=/product/app/BrowserWebView/lib/arm64:/product/app/BrowserWebView/BrowserWebView.apk!/lib/arm64-v8a:/product/app/TrichromeLibrary/TrichromeLibrary.apk!/lib/arm64-v8a:/product/lib64:/system/product/lib64
03-23 14:03:46.593 17546 17546 W linker  : Warning: "/product/app/TrichromeLibrary/TrichromeLibrary.apk!/lib/arm64-v8a/libmonochrome_64.so" unused DT entry: unknown processor-specific (type 0x70000001 arg 0x0) (ignoring)

and following the rabbit 17546 (uid):

  03-23 14:03:43.809   545   545 D Zygote  : Forked child process 17546
03-23 14:03:43.812  1102  1154 I ActivityManager: Start proc 17546:com.fortinet.forticlient_vpn/u0a209 for pre-top-activity {com.fortinet.forticlient_vpn/com.fortinet.forticlient_vpn.start.StartActivity}
03-23 14:03:43.832 17546 17546 E forticlient_vp: Not starting debugger since process cannot load the jdwp agent.
03-23 14:03:43.893 17546 17546 D NetworkSecurityConfig: No Network Security Config specified, using platform default
03-23 14:03:43.894 17546 17546 D NetworkSecurityConfig: No Network Security Config specified, using platform default
03-23 14:03:43.895 17546 17546 I MultiDex: VM with version 2.1.0 has multidex support
03-23 14:03:43.895 17546 17546 I MultiDex: Installing application
03-23 14:03:43.895 17546 17546 I MultiDex: VM has multidex support, MultiDex support library is disabled.
03-23 14:03:43.895 17546 17546 I MultiDex: Installing application
03-23 14:03:43.895 17546 17546 I MultiDex: VM has multidex support, MultiDex support library is disabled.
03-23 14:03:43.897 17546 17546 W FirebaseApp: Default FirebaseApp failed to initialize because no default options were found. This usually means that com.google.gms:google-services was not applied to your gradle project.
03-23 14:03:43.897 17546 17546 I FirebaseInitProvider: FirebaseApp initialization unsuccessful
03-23 14:03:43.899 17546 17546 D WM-WrkMgrInitializer: Initializing WorkManager with default configuration.
03-23 14:03:43.904 17546 17546 I TetheringManager: registerTetheringEventCallback:com.fortinet.forticlient_vpn
03-23 14:03:43.954 17546 17573 D libMEOW : meow reload base cfg path: na
03-23 14:03:43.954 17546 17573 D libMEOW : meow reload overlay cfg path: na
03-23 14:03:43.957 17546 17573 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 14:03:43.957 17546 17573 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 14:03:44.017 17546 17574 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 14:03:44.017 17546 17574 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 14:03:44.060 17546 17576 D FortiClient VPN: Tarball extracting...
03-23 14:03:44.123 17546 17546 D FortiClient VPN: Tarball installed
03-23 14:03:44.177 17546 17571 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 14:03:44.178 17546 17571 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 14:03:44.195 17546 17571 I libMEOW_gift: ctx:0xb4000073bf047c00, ARC not Enabled.
03-23 14:03:44.210 17546 17571 E ion     : ioctl c0044901 failed with code -1: Invalid argument
03-23 14:03:44.265 17546 17581 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 14:03:44.265 17546 17581 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 14:03:44.314 17546 17582 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 14:03:44.314 17546 17582 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 14:03:44.479 17546 17546 E ThemeUtils: View class androidx.appcompat.widget.AppCompatImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 14:03:44.481 17546 17546 E ThemeUtils: View class androidx.appcompat.widget.AppCompatTextView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 14:03:44.482 17546 17546 E ThemeUtils: View class androidx.appcompat.widget.AppCompatImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 14:03:44.510 17546 17546 E ThemeUtils: View class androidx.appcompat.widget.AppCompatImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 14:03:44.511 17546 17546 E ThemeUtils: View class androidx.appcompat.widget.AppCompatTextView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 14:03:44.512 17546 17546 E ThemeUtils: View class androidx.appcompat.widget.AppCompatImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 14:03:44.558 17546 17546 E ThemeUtils: View class androidx.appcompat.widget.AppCompatImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 14:03:44.559 17546 17546 E ThemeUtils: View class androidx.appcompat.widget.AppCompatTextView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 14:03:44.560 17546 17546 E ThemeUtils: View class androidx.appcompat.widget.AppCompatImageView is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
03-23 14:03:45.913 17546 17560 W System  : A resource failed to call release. 
03-23 14:03:45.913 17546 17560 W System  : A resource failed to call release. 
03-23 14:03:46.532 17546 17599 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 14:03:46.532 17546 17599 D libMEOW :   plugin 1: [libMEOW_gift.so]:
03-23 14:03:46.573 17546 17546 I WebViewFactory: Loading com.android.webview version 108.0.5359.156 (code 535915634)
03-23 14:03:46.581 17546 17546 D nativeloader: classloader namespace configured for unbundled product apk. library_path=/product/app/BrowserWebView/lib/arm64:/product/app/BrowserWebView/BrowserWebView.apk!/lib/arm64-v8a:/product/app/TrichromeLibrary/TrichromeLibrary.apk!/lib/arm64-v8a:/product/lib64:/system/product/lib64
03-23 14:03:46.589 17546 17546 D nativeloader: classloader namespace configured for unbundled product apk. library_path=/product/app/BrowserWebView/lib/arm64:/product/app/BrowserWebView/BrowserWebView.apk!/lib/arm64-v8a:/product/app/TrichromeLibrary/TrichromeLibrary.apk!/lib/arm64-v8a:/product/lib64:/system/product/lib64
03-23 14:03:46.593 17546 17546 W linker  : Warning: "/product/app/TrichromeLibrary/TrichromeLibrary.apk!/lib/arm64-v8a/libmonochrome_64.so" unused DT entry: unknown processor-specific (type 0x70000001 arg 0x0) (ignoring)
03-23 14:03:46.676 17546 17546 I cr_WVCFactoryProvider: Loaded version=108.0.5359.156 minSdkVersion=29 isBundle=false multiprocess=true packageId=2
03-23 14:03:46.695 17546 17546 I cr_LibraryLoader: Successfully loaded native library
03-23 14:03:46.696 17546 17546 I cr_CachingUmaRecorder: Flushed 8 samples from 8 histograms.
03-23 14:03:46.762 17546 17546 D CompatibilityChangeReporter: Compat change id reported: 147798919; UID 10209; state: ENABLED
03-23 14:03:46.764 17546 17546 E Toast   : setGravity() shouldn't be called on text toasts, the values won't be used
03-23 14:03:46.872 17546 17606 D libMEOW : applied 1 plugins for [com.fortinet.forticlient_vpn]:
03-23 14:03:46.872 17546 17606 D libMEOW :   plugin 1: [libMEOW_gift.so]:

Does that help? I don’t feel to comfortable sharing all my log, as there might be sensitive information in it (I had to exclude the address of my vpn in the log above…) and I have no clue what other might get from the information provided here.

I think, the following line might be relevant:

03-23 14:03:46.554  1102  3054 I ActivityTaskManager: START u0 {act=android.intent.action.VIEW dat=https<MY-VPN>... pkg=com.android.chrome (has extras)} from uid 10209

It is trying to load com.android.chrome which does not exist. Now – and hear me out, because it might be really dumb – what if we had a package called com.android.chrome that basically takes the information given to it and just hands it over to a browser that is actually installed? Would that be feasible? Sensible?

(in general: I search for my phone number or parts of my email address if I share a whole logcat, if you search for a vpn domain/ip that is another fitler. If I debug myself, I avoid grepping - maybe I filter by pid, but I usually check the few seconds long full log when the crash occured during interaction. Reading logs spanning more than a few seconds is exhaustive)

Your logcats had interesting lines → webview packaging, libmonochrome_64.so linker warning, FirebaseApp not initializing for the pid, libemeow (flutter?).

Anyway, yes - that intent view on pkg=com.android.chrome failing must be the source for the UI warning that chrome is not installed.

I’m sure there is some microg-alike mechanism (where you surrogate the class/package calling) to capture that intent and start any browser. Will look into it in the evening

Thank you for your insights. If you could have a look at it that would be great.

I’m thinking, if we could identify the source of the problem as something that has to do with how an app tries to call on chrome it might benefit others beyond the use of forticlient as there might be other apps hopelessly looking for chrome.

I think it would be great if /e/OS had a default mechanism to deal with this issue.

if I’m not mistaken, source of the problem is Forti hardcoding the intent to be received by com.android.chrome when it could easily be the configured webview or the preferred browser, both would be able to get the cookie from the SAML auth. It does access any other http links (in the help doc) this more reasonable way:

I ActivityTaskManager: START u0 {act=android.intent.action.VIEW dat=http://www.fortinet.com/... flg=0x14002000 cmp=foundation.e.browser/org.chromium.chrome.browser.ChromeTabbedActivity (has extras)} from uid 10130

Could be Forti devs hit a bug (2fa dongle interfacing or something) and decided to go down this route. It would’ve been easy to not force the chrome browser.

I looked a bit into how ROM developers would capture this if they don’t want to integrate the real android chrome. You can pose as the com.android.chrome package with an alternative build. Bromite can be built as system webview, but else doesn’t want to pose as com.android.chrome.

( just for fun - here’s a Chromebook user seeing the same, ironically - FortiClient 7.0.2 ChromeBook: Unable to login: Chrome Browser is not installed : fortinet )

Ok, that’s interesting. So from what I gather there are two paths to take:

  1. I try to get the Forti devs to consider system webview as an alternative.
  2. Ask the ROM devs to build Bromite in a way that it poses as com.android.chrome.
  3. I try it myself…

Which path do you consider to be more promising? I’m thinking:

  1. I would have to go through my university’s IT-Department as they might have more leverage with Forti’s support system. I am quite sure this path will take longer.
  2. Either I try to ask for the devs of Bromite or the devs of /e/OS (which I think is the most promising) to add this feature. I’m not sure where to place the request though. So far, my attempt here has made me understand the problem more clearly (thank you, tcecyk!!) but not so much solve it.
  3. That’s probably way over my skill-level and I have no idea where to even start changing Bromite’s behaviour.

Yeah, that’s ironic. They haven’t gotten any further though. And the threat seems to suggest that Forti devs will not be very helpful here.

Let the Uni License show its worth and nag someone at Fortinet. But as said, there could be technical (lazy?) reasons - you never know.

There is a thing as in “intent hijack”, if you go look around at xda you’ll probably find some solutions, but this will go in hand with building the Rom yourself probably.

1 Like

Yes. I guess, I’ll try to motivate the University’s IT-Department.

Hm. That’s out of my league.

I guess this journey has ended here. Thank you, tcecyk, for going it with me. All the best to you!

1 Like

This topic was automatically closed after 30 days. New replies are no longer allowed.