Skip to content

Requirements

Core attribution module:

| Property | Value | Source | |---|---|---| | minSdk | 21 | attribution/build.gradle:13 | | compileSdk | 34 | attribution/build.gradle:10 | | targetSdk | 35 | attribution/build.gradle:14 |

Module-level minSdk values:

| Module | minSdk | Source | |---|---|---| | module-advertising | 21 | module-advertising/build.gradle:12 | | module-androidid | 21 | module-androidid/build.gradle:12 | | module-appsflyer | 21 | module-appsflyer/build.gradle:12 | | module-huawei | 23 | module-huawei/build.gradle:12 | | module-link | 21 | module-link/build.gradle:12 | | module-meta | 21 | module-meta/build.gradle:12 | | module-network | 21 | module-network/build.gradle:12 | | module-phone | 21 | module-phone/build.gradle:12 | | module-rustore | 23 | module-rustore/build.gradle:12 | | module-status | 21 | module-status/build.gradle:12 | | module-subscription | 21 | module-subscription/build.gradle:12 | | module-tiktok | 21 | module-tiktok/build.gradle:12 |

| Tool | Version | Source | |---|---|---| | Kotlin | 1.9.24 | build.gradle:3 | | Android Gradle Plugin | 8.5.2 | build.gradle:5 | | Google Services plugin | 4.3.15 | build.gradle:6 | | Dokka | 1.9.0 | build.gradle:4 | | nexus-publish plugin | 2.0.0 | build.gradle:7 |

  • jvmVersion = "1.8" (build.gradle:83)
  • sourceCompatibility / targetCompatibility = JavaVersion.VERSION_1_8 (attribution/build.gradle:40-41)
  • kotlinOptions { jvmTarget = jvmVersion } (attribution/build.gradle:44-46)

Top-level build.gradle:28-38:

allprojects {
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io" }
maven {
url = uri("https://artifactory-external.vkpartner.ru/artifactory/maven")
}
maven { url 'https://developer.huawei.com/repo/' }
}
}

The https://developer.huawei.com/repo/ repository is required for module-huawei (build.gradle:36).

  • com.android.installreferrer:installreferrer:2.2attribution/build.gradle:63
  • com.google.android.gms:play-services-ads-identifier:18.2.0module-advertising/build.gradle:38
  • com.android.billingclient:billing-ktx:7.0.0module-subscription/build.gradle:38
  • ru.rustore.sdk:installreferrer:6.1.0module-rustore/build.gradle:37
  • com.huawei.hms:ads-identifier:3.4.62.300, com.huawei.hms:ads-installreferrer:3.4.62.300module-huawei/build.gradle:37-38

The core attribution module declares the following in attribution/src/main/AndroidManifest.xml:4-7:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.USE_EXACT_ALARM" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

A BOOT_COMPLETED receiver is registered at attribution/src/main/AndroidManifest.xml:10-17 (com.affise.attribution.background.AffiseBroadcastReceiver).

Module-level additions:

  • module-network/src/main/AndroidManifest.xml:3android.permission.ACCESS_NETWORK_STATE
  • module-phone/src/main/AndroidManifest.xml:3-4android.permission.ACCESS_NETWORK_STATE, android.permission.READ_PHONE_STATE

The README states only INTERNET is required from the consumer’s manifest:

<manifest>
<!-- ... -->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>