Integrates the ZaStoGram Python plugin engine: embeds Chaquopy (CPython 3.11) and Pine (ART/Xposed-compatible hooking). Adds host-side Java implementation under TMessagesProj/src/main/java/org/telegram/plugins (PluginsController, PluginContext, PluginInfo, PluginUtils, PluginRequestInterceptor) to handle discovery, install/load/unload, settings bridge, request interception and hook lifecycle. Updates Gradle: apply Chaquopy plugin, add chaquopy gradle classpath, add Pine dependencies, configure Chaquopy (3.11, readable .py), and raise minSdkVersion to 24 across library and app modules to satisfy Chaquopy requirements.
196 lines
5.6 KiB
Groovy
196 lines
5.6 KiB
Groovy
apply plugin: 'com.android.application'
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
google()
|
|
}
|
|
|
|
configurations {
|
|
compile.exclude module: 'support-v4'
|
|
}
|
|
|
|
configurations.all {
|
|
exclude group: 'com.google.firebase', module: 'firebase-core'
|
|
exclude group: 'androidx.recyclerview', module: 'recyclerview'
|
|
}
|
|
|
|
dependencies {
|
|
implementation project(':TMessagesProj')
|
|
implementation 'androidx.fragment:fragment:1.8.9'
|
|
implementation 'androidx.core:core:1.16.0'
|
|
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
|
|
implementation files('../TMessagesProj/libs/libgsaverification-client.aar')
|
|
}
|
|
|
|
android {
|
|
compileSdkVersion 35
|
|
buildToolsVersion '35.0.0'
|
|
|
|
defaultConfig.applicationId = APP_PACKAGE
|
|
|
|
sourceSets.main.jniLibs.srcDirs = ['../TMessagesProj/jni/']
|
|
|
|
lintOptions {
|
|
disable 'MissingTranslation'
|
|
disable 'ExtraTranslation'
|
|
disable 'BlockedPrivateApi'
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
|
|
coreLibraryDesugaringEnabled true
|
|
}
|
|
|
|
signingConfigs {
|
|
debug {
|
|
storeFile file("../TMessagesProj/config/release.keystore")
|
|
storePassword RELEASE_STORE_PASSWORD
|
|
keyAlias RELEASE_KEY_ALIAS
|
|
keyPassword RELEASE_KEY_PASSWORD
|
|
}
|
|
|
|
release {
|
|
storeFile file("../TMessagesProj/config/release.keystore")
|
|
storePassword RELEASE_STORE_PASSWORD
|
|
keyAlias RELEASE_KEY_ALIAS
|
|
keyPassword RELEASE_KEY_PASSWORD
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
debuggable true
|
|
jniDebuggable true
|
|
signingConfig signingConfigs.debug
|
|
applicationIdSuffix ".web"
|
|
minifyEnabled false
|
|
multiDexEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../TMessagesProj/proguard-rules.pro', '../TMessagesProj/proguard-rules-beta.pro'
|
|
ndk.debugSymbolLevel = 'FULL'
|
|
}
|
|
standalone {
|
|
debuggable false
|
|
jniDebuggable false
|
|
signingConfig signingConfigs.release
|
|
minifyEnabled true
|
|
multiDexEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), '../TMessagesProj/proguard-rules.pro'
|
|
ndk.debugSymbolLevel = 'FULL'
|
|
}
|
|
}
|
|
|
|
sourceSets.debug {
|
|
manifest.srcFile '../TMessagesProj/config/release/AndroidManifest_standalone.xml'
|
|
}
|
|
sourceSets.standalone {
|
|
manifest.srcFile '../TMessagesProj/config/release/AndroidManifest_standalone.xml'
|
|
}
|
|
|
|
flavorDimensions "minApi"
|
|
|
|
productFlavors {
|
|
afat {
|
|
ndk {
|
|
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
|
|
}
|
|
ext {
|
|
abiVersionCode = 9
|
|
}
|
|
sourceSets.standalone {
|
|
manifest.srcFile '../TMessagesProj/config/release/AndroidManifest_standalone.xml'
|
|
}
|
|
}
|
|
arm64 {
|
|
ndk {
|
|
abiFilters "arm64-v8a"
|
|
}
|
|
ext {
|
|
abiVersionCode = 11
|
|
}
|
|
sourceSets.standalone {
|
|
manifest.srcFile '../TMessagesProj/config/release/AndroidManifest_standalone.xml'
|
|
}
|
|
}
|
|
armv7 {
|
|
ndk {
|
|
abiFilters "armeabi-v7a"
|
|
}
|
|
ext {
|
|
abiVersionCode = 12
|
|
}
|
|
sourceSets.standalone {
|
|
manifest.srcFile '../TMessagesProj/config/release/AndroidManifest_standalone.xml'
|
|
}
|
|
}
|
|
x86 {
|
|
ndk {
|
|
abiFilters "x86"
|
|
}
|
|
ext {
|
|
abiVersionCode = 13
|
|
}
|
|
sourceSets.standalone {
|
|
manifest.srcFile '../TMessagesProj/config/release/AndroidManifest_standalone.xml'
|
|
}
|
|
}
|
|
x64 {
|
|
ndk {
|
|
abiFilters "x86_64"
|
|
}
|
|
ext {
|
|
abiVersionCode = 14
|
|
}
|
|
sourceSets.standalone {
|
|
manifest.srcFile '../TMessagesProj/config/release/AndroidManifest_standalone.xml'
|
|
}
|
|
}
|
|
}
|
|
|
|
defaultConfig.versionCode = Integer.parseInt(APP_VERSION_CODE)
|
|
|
|
applicationVariants.all { variant ->
|
|
variant.outputs.all { output ->
|
|
outputFileName = "app.apk"
|
|
output.versionCodeOverride = defaultConfig.versionCode * 100 + variant.productFlavors.get(0).abiVersionCode
|
|
}
|
|
}
|
|
|
|
def standaloneBuildFlavors = ["afat", "arm64", "armv7", "x86", "x64"]
|
|
variantFilter { variant ->
|
|
def names = variant.flavors*.name
|
|
if (variant.buildType.name != "release" && !names.any { standaloneBuildFlavors.contains(it) }) {
|
|
setIgnore(true)
|
|
}
|
|
}
|
|
|
|
defaultConfig {
|
|
minSdkVersion 24 // ZaStoGram: raised for Chaquopy (plugin engine); must match library
|
|
targetSdkVersion 35
|
|
versionName APP_VERSION_NAME
|
|
ndkVersion "27.2.12479018"
|
|
|
|
multiDexEnabled true
|
|
|
|
vectorDrawables.generatedDensities = ['mdpi', 'hdpi', 'xhdpi', 'xxhdpi']
|
|
|
|
externalNativeBuild {
|
|
cmake {
|
|
version '3.10.2'
|
|
arguments '-DANDROID_STL=c++_static', '-DANDROID_PLATFORM=android-21' //, '-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON'
|
|
}
|
|
}
|
|
}
|
|
|
|
buildFeatures {
|
|
buildConfig = true
|
|
}
|
|
namespace 'org.telegram.messenger.web'
|
|
|
|
lintOptions {
|
|
checkReleaseBuilds false
|
|
}
|
|
}
|
|
|
|
apply plugin: 'com.google.gms.google-services'
|