Skip to content

Latest commit

 

History

History
46 lines (29 loc) · 2.05 KB

README.md

File metadata and controls

46 lines (29 loc) · 2.05 KB

Android Double Loading Bug

These projects are created to demonstrate a possible Android bug, as described here: https://connectid2.atlassian.net/wiki/spaces/CONNECTID/pages/752091150/Android+App+Launch+-+Double+Link+Load+POC

In summary, it seems that while iOS doesn't fetch a link when there's an apple-app-site-association, for Android phones the browser does do a request. This is a problem when links are one time use links, which happens to be the case in our situation.

This project attempts to mimic this situation by showing that Android browsers do an actual request, even when there is an assetlink registered. This project does this by counting the number of requests made to the backend, and record the user agent of this application. While we expect that only the Android app makes the request, we can see that also the browser makes a request to the backend.

Overview

The project consists of several components:

  • static - a simple html UI
  • server - a Spring Boot component to capture requests
  • android - a minimal Android app to react to assetlinks

Deployment

Currently, it's deployed outside of ConnectID to make deployment a bit easier since it requires a bit of setup on the server side, which is easier to do using a few Nginx servers.

Demo

For a live demo, install the APK, either by building it or by downloading it here:

app-debug.apk.zip

Then:

The test page will be opened in the native Android application, but 2 requests will be done to /echo, where each call to /echo adds an item to a cache. After the first click from the Android phone, go to https://android.jworks.com.au/dump, and you'll see that there are 2 requests done, not 1, as what is expected.

Alternatively, you can look at this video:

flow2.-.480p.mov