From 7931895f9f9c8f9817a3c1fc9ec56efa9a8e58b6 Mon Sep 17 00:00:00 2001 From: liuyang Date: Wed, 8 Jul 2020 14:54:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7AndroidX=20#BYLSERVER-1438?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 8 +- app/src/main/AndroidManifest.xml | 2 +- .../java/com/duolebo/blyrobot/MainActivity.kt | 3 +- .../blyrobot/activity/CaptureActivity.kt | 6 +- .../activity/CaptureDetailActivity.kt | 2 +- .../blyrobot/activity/PackageListActivity.kt | 2 +- .../duolebo/blyrobot/data/ApkPackageInfo.kt | 4 +- .../blyrobot/service/BylRobotService.kt | 1 - .../java/com/duolebo/blyrobot/util/AdbUtil.kt | 75 +++++++++++++++++-- build.gradle | 20 ++--- gradle.properties | 1 + gradle/wrapper/gradle-wrapper.properties | 4 +- uploadservice/build.gradle | 4 +- .../UploadNotificationAction.java | 2 +- .../UploadNotificationConfig.java | 2 +- .../UploadNotificationStatusConfig.java | 2 +- .../net/gotev/uploadservice/UploadTask.java | 2 +- 17 files changed, 97 insertions(+), 43 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2e26f98..e14f1bc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,12 +7,12 @@ static def releaseTime() { } android { - compileSdkVersion 27 + compileSdkVersion 30 defaultConfig { applicationId "com.duolebo.bylrobot" minSdkVersion 15 - targetSdkVersion 22 - versionCode 28 + targetSdkVersion 26 + versionCode 30 versionName "1.6.8" } @@ -47,7 +47,7 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation(name: 'appbase-release', ext: 'aar') implementation 'com.android.volley:volley:1.1.1' - implementation 'com.android.support:appcompat-v7:27.1.1' + implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'org.nanohttpd:nanohttpd:2.2.0' implementation(name: 'vpnadaptercore-release', ext: 'aar') implementation project(':uploadservice') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0f567c5..241cdae 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,7 +26,7 @@ - + diff --git a/app/src/main/java/com/duolebo/blyrobot/MainActivity.kt b/app/src/main/java/com/duolebo/blyrobot/MainActivity.kt index 941cb67..ed2e507 100644 --- a/app/src/main/java/com/duolebo/blyrobot/MainActivity.kt +++ b/app/src/main/java/com/duolebo/blyrobot/MainActivity.kt @@ -3,13 +3,12 @@ package com.duolebo.blyrobot import android.content.Intent import android.graphics.drawable.Drawable import android.os.Bundle -import android.support.v4.content.LocalBroadcastManager -import android.support.v7.app.AppCompatActivity import android.util.Log import android.view.View import android.view.ViewGroup import android.widget.BaseAdapter import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity import com.duolebo.appbase.AppBaseHandler import com.duolebo.appbase.IAppBaseCallback import com.duolebo.appbase.IProtocol diff --git a/app/src/main/java/com/duolebo/blyrobot/activity/CaptureActivity.kt b/app/src/main/java/com/duolebo/blyrobot/activity/CaptureActivity.kt index d5f4c6a..1e32a68 100644 --- a/app/src/main/java/com/duolebo/blyrobot/activity/CaptureActivity.kt +++ b/app/src/main/java/com/duolebo/blyrobot/activity/CaptureActivity.kt @@ -1,13 +1,13 @@ -package com.duolebo.blyrobot +package com.duolebo.blyrobot.activity import android.app.Activity import android.content.Context import android.content.Intent import android.os.Bundle -import android.support.v7.app.AppCompatActivity import android.util.Log import android.widget.* -import com.duolebo.blyrobot.activity.PackageListActivity +import androidx.appcompat.app.AppCompatActivity +import com.duolebo.blyrobot.R import com.duolebo.blyrobot.data.ApkPackageInfo import com.duolebo.blyrobot.service.BylRobotService import com.duolebo.blyrobot.service.BylWebService diff --git a/app/src/main/java/com/duolebo/blyrobot/activity/CaptureDetailActivity.kt b/app/src/main/java/com/duolebo/blyrobot/activity/CaptureDetailActivity.kt index 513eed8..c225d17 100644 --- a/app/src/main/java/com/duolebo/blyrobot/activity/CaptureDetailActivity.kt +++ b/app/src/main/java/com/duolebo/blyrobot/activity/CaptureDetailActivity.kt @@ -2,7 +2,7 @@ package com.duolebo.blyrobot.activity import android.os.Bundle import android.os.PersistableBundle -import android.support.v7.app.AppCompatActivity +import androidx.appcompat.app.AppCompatActivity class CaptureDetailActivity: AppCompatActivity() { diff --git a/app/src/main/java/com/duolebo/blyrobot/activity/PackageListActivity.kt b/app/src/main/java/com/duolebo/blyrobot/activity/PackageListActivity.kt index 97e8008..ed1bdb1 100644 --- a/app/src/main/java/com/duolebo/blyrobot/activity/PackageListActivity.kt +++ b/app/src/main/java/com/duolebo/blyrobot/activity/PackageListActivity.kt @@ -4,10 +4,10 @@ import android.content.Intent import android.content.pm.PackageManager import android.graphics.drawable.Drawable import android.os.Bundle -import android.support.v7.app.AppCompatActivity import android.view.View import android.view.ViewGroup import android.widget.* +import androidx.appcompat.app.AppCompatActivity import com.duolebo.blyrobot.R import com.minhui.vpn.utils.ThreadProxy diff --git a/app/src/main/java/com/duolebo/blyrobot/data/ApkPackageInfo.kt b/app/src/main/java/com/duolebo/blyrobot/data/ApkPackageInfo.kt index 3e4d9f5..43228b0 100644 --- a/app/src/main/java/com/duolebo/blyrobot/data/ApkPackageInfo.kt +++ b/app/src/main/java/com/duolebo/blyrobot/data/ApkPackageInfo.kt @@ -29,8 +29,8 @@ class ApkPackageInfo : Parcelable { protected constructor(ins: Parcel) { this.appName = ins.readString() - this.packageName = ins.readString() - this.applicationInfo = ins.readParcelable(ApplicationInfo::class.java.classLoader) + this.packageName = ins.readString().toString() + this.applicationInfo = ins.readParcelable(ApplicationInfo::class.java.classLoader)!! } companion object { diff --git a/app/src/main/java/com/duolebo/blyrobot/service/BylRobotService.kt b/app/src/main/java/com/duolebo/blyrobot/service/BylRobotService.kt index ab29b19..17dc1c2 100644 --- a/app/src/main/java/com/duolebo/blyrobot/service/BylRobotService.kt +++ b/app/src/main/java/com/duolebo/blyrobot/service/BylRobotService.kt @@ -7,7 +7,6 @@ import android.content.Context import android.content.Intent import android.content.IntentFilter import android.os.IBinder -import android.support.v4.content.LocalBroadcastManager import android.util.Log import com.duolebo.appbase.AppBaseHandler import com.duolebo.appbase.IAppBaseCallback diff --git a/app/src/main/java/com/duolebo/blyrobot/util/AdbUtil.kt b/app/src/main/java/com/duolebo/blyrobot/util/AdbUtil.kt index cbb6c38..af619f3 100644 --- a/app/src/main/java/com/duolebo/blyrobot/util/AdbUtil.kt +++ b/app/src/main/java/com/duolebo/blyrobot/util/AdbUtil.kt @@ -12,6 +12,7 @@ object AdbUtil { const val TAG = "TaskAdbUtil" const val SHELL = "sh" const val ROOT_SHELL = "su" + const val ID_U = "id -u" const val LINE_BREAK = "\n" const val EXIT = "exit" @@ -22,8 +23,8 @@ object AdbUtil { var proc = getShellProc(ROOT_SHELL) ?: return false Log.i(TAG, "get root proc success!") val commands = ArrayList() - commands.add("id -u") - val result = this.sendCommands(commands, proc) + commands.add(ID_U) + var result = this.sendCommands(commands, proc) Log.i(TAG, "check permission error ${result.errorLines} and message ${result.successLines}") if (isRoot(result)) { return true @@ -31,8 +32,8 @@ object AdbUtil { else { proc = getShellProc(SHELL) ?: return false commands.clear() - commands.add("id -u") - val result = this.sendCommands(commands, proc) + commands.add(ID_U) + result = this.sendCommands(commands, proc) if (isRoot(result)) return true } @@ -84,6 +85,70 @@ object AdbUtil { return proc } + fun exeSingleCmdEcho(command: String): CmdResult { + Log.i(TAG, "exe single cmd echo: $command") + + val result = CmdResult(-1, "", "") + var status = -1 + var successBufReader: BufferedReader? = null + var errorBufReader: BufferedReader? = null + + var dos: DataOutputStream? = null + try { + + val proc = Runtime.getRuntime().exec(command) + + successBufReader = BufferedReader(InputStreamReader(proc.inputStream)) + errorBufReader = BufferedReader(InputStreamReader(proc.errorStream)) + var lineStr: String? = null + do { + lineStr = successBufReader.readLine() + if (lineStr.isNullOrEmpty()) + break + lineStr = trimLine(lineStr) + Log.i(TAG, " success line echo : $lineStr") + } while (true) + + do { + lineStr = errorBufReader.readLine() + if (lineStr.isNullOrEmpty()) + break + lineStr = trimLine(lineStr) + Log.i(TAG, " error line echo : $lineStr") + } while (true) + + status = proc.waitFor() + + } catch (e: IOException) { + e.printStackTrace() + } catch (e: Exception) { + e.printStackTrace() + } finally { + try { + dos?.close() + successBufReader?.close() + errorBufReader?.close() + } catch (e: IOException) { + e.printStackTrace() + } + } + Log.i(TAG, "error message:${result.errorLines} and status $status") + if (result.errorLines.size > 0 && result.successLines.size <= 0) + status = -1 + + result.status = status + + for (line in result.successLines) { + Log.i(TAG, "echo success line: $line") + } + + for (line in result.errorLines) { + Log.i(TAG, "echo error line: $line") + } + + return result + } + fun exeCmdEcho(cmd: String, root: Boolean = false): CmdResult { val exeCommands = ArrayList() exeCommands.add(cmd) @@ -124,7 +189,7 @@ object AdbUtil { var dos: DataOutputStream? = null try { - dos = DataOutputStream(proc!!.outputStream) + dos = DataOutputStream(proc.outputStream) for (command in commands) { if (command.isEmpty()) { continue diff --git a/build.gradle b/build.gradle index 11093b2..052b8c2 100644 --- a/build.gradle +++ b/build.gradle @@ -1,20 +1,21 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.2.71' + ext.kotlin_version = '1.3.70' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.1.4' + classpath 'com.android.tools.build:gradle:4.0.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7' + classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' + classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } + } allprojects { @@ -26,17 +27,6 @@ allprojects { dirs '../../aars' } } - - subprojects { - project.configurations.all { - resolutionStrategy.eachDependency { details -> - if (details.requested.group == 'com.android.support' - && !details.requested.name.contains('multidex') ) { - details.useVersion "27.1.1" - } - } - } - } } task clean(type: Delete) { diff --git a/gradle.properties b/gradle.properties index c73d239..e6af540 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,3 +17,4 @@ org.gradle.jvmargs=-Xmx1536m android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true +android.injected.testOnly=false diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 09bc3ae..4ccc158 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ -#Tue Sep 25 09:27:36 CST 2018 +#Wed Jul 08 10:14:08 CST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip android.enableBuildCache=false diff --git a/uploadservice/build.gradle b/uploadservice/build.gradle index 6ba2543..e6e9b04 100644 --- a/uploadservice/build.gradle +++ b/uploadservice/build.gradle @@ -35,8 +35,8 @@ android { def supportLibraryVersion = "27.1.1" dependencies { - implementation "com.android.support:appcompat-v7:${supportLibraryVersion}" - implementation "com.android.support:support-v4:${supportLibraryVersion}" + implementation 'androidx.appcompat:appcompat:1.0.0' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' } // add the following information to the file: local.properties situated in the parent directory of diff --git a/uploadservice/src/main/java/net/gotev/uploadservice/UploadNotificationAction.java b/uploadservice/src/main/java/net/gotev/uploadservice/UploadNotificationAction.java index cf0d99e..5b0e990 100644 --- a/uploadservice/src/main/java/net/gotev/uploadservice/UploadNotificationAction.java +++ b/uploadservice/src/main/java/net/gotev/uploadservice/UploadNotificationAction.java @@ -3,7 +3,7 @@ package net.gotev.uploadservice; import android.app.PendingIntent; import android.os.Parcel; import android.os.Parcelable; -import android.support.v4.app.NotificationCompat; +import androidx.core.app.NotificationCompat; import android.text.TextUtils; /** diff --git a/uploadservice/src/main/java/net/gotev/uploadservice/UploadNotificationConfig.java b/uploadservice/src/main/java/net/gotev/uploadservice/UploadNotificationConfig.java index c6e4b68..b63e96e 100644 --- a/uploadservice/src/main/java/net/gotev/uploadservice/UploadNotificationConfig.java +++ b/uploadservice/src/main/java/net/gotev/uploadservice/UploadNotificationConfig.java @@ -4,7 +4,7 @@ import android.app.PendingIntent; import android.graphics.Bitmap; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; /** * Contains the configuration of the upload notification. diff --git a/uploadservice/src/main/java/net/gotev/uploadservice/UploadNotificationStatusConfig.java b/uploadservice/src/main/java/net/gotev/uploadservice/UploadNotificationStatusConfig.java index d81d2be..244a68d 100644 --- a/uploadservice/src/main/java/net/gotev/uploadservice/UploadNotificationStatusConfig.java +++ b/uploadservice/src/main/java/net/gotev/uploadservice/UploadNotificationStatusConfig.java @@ -6,7 +6,7 @@ import android.content.Intent; import android.graphics.Bitmap; import android.os.Parcel; import android.os.Parcelable; -import android.support.v4.app.NotificationCompat; +import androidx.core.app.NotificationCompat; import java.util.ArrayList; diff --git a/uploadservice/src/main/java/net/gotev/uploadservice/UploadTask.java b/uploadservice/src/main/java/net/gotev/uploadservice/UploadTask.java index 5006559..1da9a49 100644 --- a/uploadservice/src/main/java/net/gotev/uploadservice/UploadTask.java +++ b/uploadservice/src/main/java/net/gotev/uploadservice/UploadTask.java @@ -9,7 +9,7 @@ import android.media.RingtoneManager; import android.net.Uri; import android.os.Build; import android.os.Handler; -import android.support.v4.app.NotificationCompat; +import androidx.core.app.NotificationCompat; import java.io.File; import java.io.IOException; -- 2.21.0