同步旧客户端的部分配置文件到本项目

This commit is contained in:
free will committed 2021-06-22 16:53:49 +08:00
1 parent 3dbfc380a5
commit 86cb174b6e
7 files changed
+460 -7

No files matched your search

+1
View File
@@ -16,3 +16,4 @@ local.properties
.idea/ .idea/
.git/ .git/
app/build/
+1 -1
View File
@@ -22,7 +22,7 @@
## 开发环境 ## 开发环境
jdk版本: 1.8 jdk版本: 1.8
Android API Platform: 29 Android API Platform: 30
Gradle版本: 6.7.1 Gradle版本: 6.7.1
## 使用说明 ## 使用说明
+111 -2
View File
@@ -3,17 +3,53 @@ plugins {
} }
android { android {
applicationVariants.all { variant ->
variant.outputs.all { output ->
def outputFile = output.outputFile
def fileName
if (outputFile != null && outputFile.name.endsWith('.apk')) {
if (variant.buildType.name.equals('release')) {//如果是release包
fileName = "MIN_VPN_release_v${defaultConfig.versionName}.apk"
} else if (variant.buildType.name.equals('debug')) {//如果是debug包
fileName = "MIN_VPN_debug_v${defaultConfig.versionName}.apk"
}
outputFileName = fileName
}
}
}
// APK导出时需要的身份签名(内含APP所属单位、APP版本号信息)
signingConfigs {
release {
keyAlias 'pkukey'
keyPassword 'pkusz111'
storeFile file('pkukey.jks')
storePassword 'pkusz111'
}
}
compileSdkVersion 30 compileSdkVersion 30
buildToolsVersion "30.0.3" buildToolsVersion "30.0.3"
sourceSets.main.jniLibs.srcDirs = ['libs']
defaultConfig { defaultConfig {
applicationId "com.pkusz.min_vpn_client" applicationId "com.pkusz.min_vpn_client"
minSdkVersion 24 minSdkVersion 24
targetSdkVersion 30 targetSdkVersion 30
versionCode 1 versionCode 4
versionName "1.0" versionName "4.0.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
// 解决32位so库的调用问题。https://blog.csdn.net/li_dongcai/article/details/53612634
// https://www.jianshu.com/p/ad95c885c2f8?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
ndk{
abiFilters "armeabi-v7a","x86"
}
packagingOptions {
exclude "lib/arm64-v8a/libsqlitejdbc.so"
}
} }
buildTypes { buildTypes {
@@ -25,6 +61,12 @@ android {
lintOptions { lintOptions {
disable('AllowBackup', 'GoogleAppIndexingWarning', 'MissingApplicationIcon') disable('AllowBackup', 'GoogleAppIndexingWarning', 'MissingApplicationIcon')
} }
// 编译所用jdk版本
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
} }
dependencies { dependencies {
@@ -33,4 +75,71 @@ dependencies {
androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
compileOnly 'com.google.android.things:androidthings:1.0' compileOnly 'com.google.android.things:androidthings:1.0'
// 以下为旧版本VPN客户端的依赖库(去掉kotlin)
implementation fileTree(dir: "libs", include: ["*.jar"])
// implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.3.1'
implementation "androidx.appcompat:appcompat:$androidx_base_version"
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation "androidx.recyclerview:recyclerview:$androidx_base_version"
implementation "androidx.security:security-crypto:1.1.0-alpha03"
implementation "org.jetbrains.anko:anko-commons:$anko_version"
// 所有的模块都依赖于 quick_android_base (必选)
implementation "com.github.SunnyQjm.quickandroid:quick_android_base:$quick_android_version"
implementation "com.github.SunnyQjm.quickandroid:quick_android_custom_view:$quick_android_version"
implementation "com.github.SunnyQjm.quickandroid:quick_android_easy_bar:$quick_android_version"
// 引入quick_android_mvp模块,来使用网络请求和MVP架构(可选)
implementation "com.github.SunnyQjm.quickandroid:quick_android_mvp:$quick_android_version"
// 引入quick_android_rx_permission模块,来接入链式调用动态请求权限的功能(可选)
implementation "com.github.SunnyQjm.quickandroid:quick_android_rx_permission:$quick_android_version"
// 引入quick_android_qrcode模块,来接入扫码功能(可选)
implementation "com.github.SunnyQjm.quickandroid:quick_android_qrcode:$quick_android_version"
// 引入quick_android_image_picker模块,来接入图片选择,图片裁剪等功能(可选)
implementation "com.github.SunnyQjm.quickandroid:quick_android_image_picker:$quick_android_version"
// 引入文件选择功能(调用系统的文件管理器)
implementation "com.github.SunnyQjm.quickandroid:quick_android_file_picker:$quick_android_version"
// loading button
implementation 'br.com.simplepass:loading-button-android:2.2.0'
// AndroidUtilCode
implementation 'com.blankj:utilcodex:1.26.0'
// 加载动画
implementation 'com.github.ybq:Android-SpinKit:1.4.0'
// android-banner
implementation 'com.github.zhpanvip:BannerViewPager:2.6.1'
// EventBus
implementation 'org.greenrobot:eventbus:3.1.1'
// SmartRefreshLayout
implementation "com.scwang.smartrefresh:SmartRefreshLayout:$smart_refresh_layout_version"
implementation "com.scwang.smartrefresh:SmartRefreshHeader:$smart_refresh_layout_version"
// brvah
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.49-androidx'
implementation 'com.google.android.material:material:1.3.0-alpha01'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.github.bumptech.glide:glide:4.7.1'
//implementation 'me.dm7.barcodescanner:zxing:1.9.13'
implementation 'cn.bingoogolapple:bga-qrcode-zxing:1.3.7'
//implementation 'com.wei.android.lib:fingerprintidentify:1.2.6'
implementation 'co.infinum:goldfinger:2.0.1'
//验证码空间
implementation 'com.justkiddingbaby:vercodeedittext:1.1.0'
//倒计时按钮
implementation 'com.white.countdownbutton:countdownbtn:1.0.4'
} }
Binary file not shown.
BIN
View File
Binary file not shown.
+332 -1
View File
@@ -18,4 +18,335 @@
# If you keep the line number information, uncomment this to # If you keep the line number information, uncomment this to
# hide the original source file name. # hide the original source file name.
#-renamesourcefileattribute SourceFile #-renamesourcefileattribute SourceFile
# 以下是旧版VPN的本配置文件内容
#---------------------------------基本指令区-----------------------
-optimizationpasses 5 #指定代码的压缩级别
-dontpreverify #预校验
-verbose #指定日志级别
-dontskipnonpubliclibraryclassmembers
-dontusemixedcaseclassnames #包名不混合大小写
-ignorewarnings #忽略警告
-printmapping proguardMapping.txt #生成原类名和混淆后的类名的映射文件
-optimizations !code/simplification/cast,!field/*,!class/merging/* #混淆时所采用的算法
-keepattributes *Annotation*,InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
#---------------------------------默认保留区------------------------
#四大组件、View体系等
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Fragment
-keep public class * extends android.support.multidex.MultiDexApplication
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.preference.Preference
-keep public class * extends android.view.View
-keep class android.support.** {*;}
-keep public class * extends android.support.v4.**
-keep public class * extends android.view.View{
*** get*();
void set*(***);
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers public class * extends android.view.View {
void set*(***);
*** get*();
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
#Serializable
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
-keep class **.R$* {
*;
}
-keepclassmembers class * {
void *(*Event);
}
#enum
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclassmembers class * {
public <init> (org.json.JSONObject);
}
-keepclasseswithmembernames class * {
native <methods>;
}
#Parcelable
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
#webview
-keepclassmembers class fqcn.of.javascript.interface.for.Webview {
public *;
}
-keepclassmembers class * extends android.webkit.WebViewClient {
public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
public boolean *(android.webkit.WebView, java.lang.String);
}
-keepclassmembers class * extends android.webkit.WebViewClient {
public void *(android.webkit.WebView, jav.lang.String);
}
#----------------------------------Kotlin--------------------------------------
#kotlin
-keep class kotlin.** { *; }
-keep class kotlin.Metadata { *; }
-dontwarn kotlin.**
-keepclassmembers class **$WhenMappings {
<fields>;
}
-keepclassmembers class kotlin.Metadata {
public <methods>;
}
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}
-keep class kotlinx.coroutines.android.** {*;}
# ServiceLoader support
-keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
-keepnames class kotlinx.coroutines.android.AndroidExceptionPreHandler {}
-keepnames class kotlinx.coroutines.android.AndroidDispatcherFactory {}
# Most of volatile fields are updated with AFU and should not be mangled
-keepclassmembernames class kotlinx.** {
volatile <fields>;
}
#---------------------------------Support Vx ---------------------------------
# support-v4
-dontwarn android.support.v4.**
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class android.support.v4.** { *; }
-keep class android.support.v4.** {
<fields>;
<methods>;
}
-keep interface android.support.v4.app.** {
<fields>;
<methods>;
}
# support-v7
-dontwarn android.support.v7.**
-keep class android.support.v7.internal.** { *; }
-keep interface android.support.v7.internal.** { *; }
-keep class android.support.v7.** { *; }
# support design
-dontwarn android.support.design.**
-keep class android.support.design.** { *; }
-keep interface android.support.design.** { *; }
-keep public class android.support.design.R$* { *; }
#---------------------------------androidx-------------------------
-keep class com.google.android.material.** {*;}
-keep class androidx.** {*;}
-keep public class * extends androidx.**
-keep interface androidx.** {*;}
-dontwarn com.google.android.material.**
-dontnote com.google.android.material.**
-dontwarn androidx.**
#---------------------------------model and scan and util-------------------------
-keep class cn.qjm253.min_vpn.model.error.** {*;}
-keep public class * extends cn.qjm253.min_vpn.model.error.**
-keep interface cn.qjm253.min_vpn.model.error.** {*;}
-keep class cn.qjm253.min_vpn.model.event.** {*;}
-keep public class * extends cn.qjm253.min_vpn.model.event.**
-keep interface cn.qjm253.min_vpn.model.event.** {*;}
-keep class cn.qjm253.min_vpn.model.request.** {*;}
-keep public class * extends cn.qjm253.min_vpn.model.request.**
-keep interface cn.qjm253.min_vpn.model.request.** {*;}
-keep class cn.qjm253.min_vpn.model.response.** {*;}
-keep public class * extends cn.qjm253.min_vpn.model.response.**
-keep interface cn.qjm253.min_vpn.model.response.** {*;}
-keep class cn.qjm253.min_vpn.model.info.** {*;}
-keep public class * extends cn.qjm253.min_vpn.model.info.**
-keep interface cn.qjm253.min_vpn.model.info.** {*;}
#-keep class cn.qjm253.min_vpn.model.** {*;}
#
#-keep public class * extends cn.qjm253.min_vpn.model.**
#
#-keep interface cn.qjm253.min_vpn.model.** {*;}
#-keep class cn.qjm253.min_vpn.scan.** {*;}
#
#-keep public class * extends cn.qjm253.min_vpn.scan.**
#
#-keep interface cn.qjm253.min_vpn.scan.** {*;}
#-keep class cn.qjm253.min_vpn.utils.** {*;}
#
#-keep public class * extends cn.qjm253.min_vpn.utils.**
#
#-keep interface cn.qjm253.min_vpn.utils.** {*;}
#-keepattributes Exceptions,InnerClasses,...
#-keep public class cn.qjm253.min_vpn.utils.SafetyInfoUtil { *; }
#-keep public class cn.qjm253.min_vpn.utils.SafetyInfoUtil$* { *; }
#-keepnames public class cn.qjm253.min_vpn.utils.SafetyInfoUtil, cn.qjm253.min_vpn.utils.SafetyInfoUtil$* {
# public <fields>;
# public <methods>;
#}
#---------------------------------第三方包-------------------------
#okhttp3.x
-dontwarn com.squareup.okhttp3.**
-keep class com.squareup.okhttp3.** { *;}
-dontwarn okio.**
-dontwarn com.squareup.okhttp.**
-keep class com.squareup.okhttp.{*;}
-dontwarn javax.annotation.**
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
-dontwarn org.codehaus.mojo.animal_sniffer.*
-dontwarn okhttp3.internal.platform.ConscryptPlatform
#retrofit
-dontwarn retrofit.**
-keep class retrofit.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-dontwarn okio.**
#Rxjava RxAndroid
-dontwarn rx.*
-dontwarn sun.misc.**
#Glide
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
#Gson
-keep class com.google.gson.** {*;}
-keep class com.google.**{*;}
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.** { *; }
-keep class com.google.gson.examples.android.model.** { *; }
#Lambda表达式
-keep class java.lang.invoke.** {*;}
-dontwarn java.lang.invoke.**
#eventbus 3.0
-keepattributes *Annotation*
-keepclassmembers class ** {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
<init>(java.lang.Throwable);
}
#jackson
-keep @com.fasterxml.jackson.annotation.JsonIgnoreProperties class * { *; }
-keep @com.fasterxml.jackson.annotation.JsonCreator class * { *; }
-keep @com.fasterxml.jackson.annotation.JsonValue class * { *; }
-keep class sun.misc.Unsafe { *; }
-keepattributes *Annotation*,EnclosingMethod,Signature
-keepnames class com.fasterxml.jackson.** { *; }
-dontwarn com.fasterxml.jackson.databind.**
-keep class org.codehaus.** { *; }
-keepclassmembers public final enum org.codehaus.jackson.annotate.JsonAutoDetect$Visibility {
public static final org.codehaus.jackson.annotate.JsonAutoDetect$Visibility *; }
#百度地图
-keep class com.baidu.** { *; }
#虹软
-keep class com.arcsoft.face.** { *; }
#Jndn
-keep class net.named_data.jndn.** { *; }
#commons-codec
-keep class edu.pku.commons.codec.** { *; }
#nucypher-crypto-oss-master and bouncycastle
-keep class com.nucypher.crypto.** { *; }
-keep class org.bouncycastle.** { *; }
#xUtils
-keep class com.lidroid.xutils.** { *; }
#junit
-keep class org.junit.** { *; }
-dontwarn org.junit.**
-keep class junit.** { *; }
-dontwarn junit.**
#goldFinger
-keep class co.infinum.goldfinger.** { *; }
#gmHelper
-keep class org.zz.gmhelper.** {* ;}
#logback
-keep class ch.qos.logback.** {* ;}
+15 -3
View File
@@ -1,8 +1,17 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext.quick_android_version = 'v0.1.9'
ext.anko_version = '0.10.8'
ext.smart_refresh_layout_version = '1.1.0'
ext.androidx_base_version = '1.1.0'
ext.room_version = "2.2.3"
repositories { repositories {
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
maven { url 'http://maven.aliyun.com/nexus/content/groups/public'}
maven { url 'https://jitpack.io' }
google() google()
mavenCentral() // jcenter()
// mavenCentral()
} }
dependencies { dependencies {
classpath "com.android.tools.build:gradle:4.2.1" classpath "com.android.tools.build:gradle:4.2.1"
@@ -14,9 +23,12 @@ buildscript {
allprojects { allprojects {
repositories { repositories {
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
maven { url 'http://maven.aliyun.com/nexus/content/groups/public'}
maven { url 'https://jitpack.io' }
google() google()
mavenCentral() // mavenCentral()
jcenter() // Warning: this repository is going to shut down soon // jcenter() // Warning: this repository is going to shut down soon
} }
} }