...
 
Commits (1)
......@@ -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')
......
......@@ -26,7 +26,7 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".CaptureActivity" />
<activity android:name=".activity.CaptureActivity" />
<activity android:name=".activity.PackageListActivity" />
<service android:name=".service.BylRobotService"/>
......
......@@ -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
......
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
......
......@@ -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() {
......
......@@ -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
......
......@@ -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 {
......
......@@ -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
......
......@@ -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<String>()
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<String>()
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
......
// 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) {
......
......@@ -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
#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
......@@ -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
......
......@@ -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;
/**
......
......@@ -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.
......
......@@ -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;
......
......@@ -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;
......