Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Install Referrer Library v1.1 adds permissions

Updating the Install Referrer Library from v1.0 to v1.1 added the following permissions:

WRITE_EXTERNAL_STORAGE

READ_EXTERNAL_STORAGE

READ_PHONE_STATE

Those permissions are not present in the Install Referrer Library manifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.installreferrer" >

    <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />

    <application />

</manifest>

Source: https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.1

Why those permissions added to the merged manifest?

like image 405
sagis Avatar asked Dec 10 '19 09:12

sagis


People also ask

What is permission play install referrer API?

You can use the Google Play Store's Install Referrer API to securely retrieve referral content from Google Play, such as: The referrer URL of the installed package. The timestamp, in seconds, of when a referrer click happened (both client- and server-side).

What is Google Play install referrer?

An Install Referrer is an Android-specific ad tracking identifier. Like Device IDs and Device Fingerprinting, an install referrer is a unique string that's sent to the Play Store when a user clicks on an ad.

How do I test Google install referrer?

Start Google Play on the device using campaign link, for example, https://play.google.com/store/apps/details?id=com.test.test_project&referrer=utm_source%3Dtest_source%26utm_medium%3Dtest_medium%26utm_term%3Dtest-term%26utm_content%3Dtest_content%26utm_campaign%3Dtest_name (You can use google play generator: https:// ...


2 Answers

This is because they have added a dependency to

com.google.android.gms:play-services-measurement:17.2.1

Which adds those permissions.

You can find it on the file: manifest-merger-blame-debug-report.txt which is under "yourApp/build/intermediates/manifest_merge_blame_file/debug

It's probably a bug. I currently just downgraded back to 1.0. But if you need this version you can add

<uses-permission android:name="<permission_name>" tools:node="remove" />

To disable it.
Know that if you'll use any API which needs it inside the library it could lead to a crash so i won't recommend doing so.

like image 117
Shirane85 Avatar answered Oct 13 '22 19:10

Shirane85


Version 1.1 and 1.1.1 are missing "minSdkVersion". This would automatically add those permissions. See similar issue here: Google Play Services 12.0.1.

Solution

Version 1.1.2 solves this issue.

Details

Manifest.xml for v1.0 (from https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.0)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.installreferrer" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="22" />

    <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />

    <application />

</manifest>

Manifest.xml for v1.1 (from https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.1)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.installreferrer">

    <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />

    <application />

</manifest>
like image 44
sagis Avatar answered Oct 13 '22 20:10

sagis