From badb89008b8a5537fb8213d79f830c636320bb7b Mon Sep 17 00:00:00 2001 From: virjar Date: Thu, 26 Aug 2021 16:26:06 +0800 Subject: [PATCH] init --- .gitignore | 44 ++++ README.md | 25 ++ android.jks | Bin 0 -> 2184 bytes app/build.gradle | 57 ++++ app/proguard-rules.pro | 33 +++ app/src/main/AndroidManifest.xml | 47 ++++ .../main/assets/config.template.properties | 3 + app/src/main/assets/sshdroid.pem | 16 ++ app/src/main/assets/xposed_init | 1 + app/src/main/ic_launcher-web.png | Bin 0 -> 43768 bytes .../java/com/virjar/sshdroid/Configs.java | 41 +++ .../main/java/com/virjar/sshdroid/Main.java | 21 ++ .../com/virjar/sshdroid/MainActivity.java | 26 ++ .../main/java/com/virjar/sshdroid/SSHD.java | 152 +++++++++++ .../java/org/slf4j/impl/AndroidLogger.java | 245 ++++++++++++++++++ .../org/slf4j/impl/AndroidLoggerFactory.java | 128 +++++++++ .../org/slf4j/impl/StaticLoggerBinder.java | 85 ++++++ .../java/org/slf4j/impl/StaticMDCBinder.java | 63 +++++ .../org/slf4j/impl/StaticMarkerBinder.java | 73 ++++++ .../java/org/slf4j/impl/package-info.java | 3 + app/src/main/res/drawable/ic_fab_weimi.png | Bin 0 -> 1162 bytes app/src/main/res/layout/activity_main.xml | 64 +++++ app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3738 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 2837 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3499 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2200 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3930 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 3378 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 4511 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 4610 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 4878 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 5854 bytes app/src/main/res/values/colors.xml | 15 ++ app/src/main/res/values/strings.xml | 7 + app/src/main/res/values/style.xml | 10 + build.gradle | 23 ++ gradle.properties | 16 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 172 ++++++++++++ gradlew.bat | 84 ++++++ settings.gradle | 1 + 42 files changed, 1461 insertions(+) create mode 100755 .gitignore create mode 100755 README.md create mode 100644 android.jks create mode 100755 app/build.gradle create mode 100755 app/proguard-rules.pro create mode 100755 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/assets/config.template.properties create mode 100644 app/src/main/assets/sshdroid.pem create mode 100755 app/src/main/assets/xposed_init create mode 100755 app/src/main/ic_launcher-web.png create mode 100644 app/src/main/java/com/virjar/sshdroid/Configs.java create mode 100755 app/src/main/java/com/virjar/sshdroid/Main.java create mode 100644 app/src/main/java/com/virjar/sshdroid/MainActivity.java create mode 100644 app/src/main/java/com/virjar/sshdroid/SSHD.java create mode 100755 app/src/main/java/org/slf4j/impl/AndroidLogger.java create mode 100755 app/src/main/java/org/slf4j/impl/AndroidLoggerFactory.java create mode 100755 app/src/main/java/org/slf4j/impl/StaticLoggerBinder.java create mode 100755 app/src/main/java/org/slf4j/impl/StaticMDCBinder.java create mode 100755 app/src/main/java/org/slf4j/impl/StaticMarkerBinder.java create mode 100644 app/src/main/java/org/slf4j/impl/package-info.java create mode 100644 app/src/main/res/drawable/ic_fab_weimi.png create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100755 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100755 app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100755 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100755 app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100755 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100755 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100755 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100755 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100755 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100755 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100755 app/src/main/res/values/colors.xml create mode 100755 app/src/main/res/values/strings.xml create mode 100755 app/src/main/res/values/style.xml create mode 100755 build.gradle create mode 100755 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100755 gradlew.bat create mode 100755 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..05a9d87 --- /dev/null +++ b/.gitignore @@ -0,0 +1,44 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild + +# kdiff3 ignore +*.orig + +# maven ignore +target/ + +# eclipse ignore +.settings/ +.project +.classpath + +# idea ignore +.idea/ +*.ipr +*.iml +*.iws + +# temp ignore +*.log +*.cache +*.diff +*.patch +*.tmp + +# system ignore +.DS_Store +Thumbs.db + + +*.apk +.cxx/ +build/ + +app/src/main/assets/config.properties \ No newline at end of file diff --git a/README.md b/README.md new file mode 100755 index 0000000..a25df3b --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# SSHDroid + +给android app提供的一个sshd服务,起主要作用是提供一个交互式的shell工具, +我们可以通过他访问app的内部数据文件。 + +**请注意本服务和android原生adb是不冲突的,因为adb无法访问app私有文件目录,SSHDroid则通过插件注入的方式将私有文件系统暴露出来** + + +## 运行 + +1. 复制文件: ``app/src/main/assets/config.template.properties``-> `` app/src/main/assets/config.properties`` +2. 修改内容 + - targetPackage: 需要被注入的进程 + - ssdServerPort: 启动的端口号,请注意不要和其他服务冲突 + - newProcess: 是否需要在新进程中启动,如果你的app开启了分身,那么最好将这个配置设置为true。因为分身功能将会破坏原有文件系统(特别是平头哥系统) +3. 安装并运行插件 +4. 在电脑上面运行adb forward,如: ``adb forward tcp:3478 tcp:3478`` +5. 使用电脑连接服务,如: + - ssh 127.0.0.1 -p 3478 登陆shell + - scp -P 3478 ./test.txt 127.0.0.1:/data/data/xxx/files/ + - scp -P 3478 127.0.0.1:/data/data/xxx/files/aaa.log ~/Desktop/ + +## 自动化和集群化 +请基于当前工具做二次封装 + diff --git a/android.jks b/android.jks new file mode 100644 index 0000000000000000000000000000000000000000..0f722f78f3031e4d0bd5d2f481433ce667903acb GIT binary patch literal 2184 zcmb`{`8U)H8vyY6&J4yfl5LE#g+hxj#xj;{Sz<76wvlyu(QreSh^sJZl4z`@DvtLm&|7egOXj4>8a? zB*@Qu-vPr{+XEmFE&wFMcR@jJzLVSl98iHC1^_MyoDBa=BS;qK4z!Q3xQ6~+4Y5Af ze9|^09v@^Ie!l7qP8)w9_=D%Cma9{@sO;Di_jEgv z6F*zuajYvJAn$|QvVkwMlx5(;hR)4Z@hP-#`du@?n+<9&tv;o`=={7~B(M9{hjOL6 zJ39t5-P1*}ZOYM=ZZ^P^9d+2Y$0dvB2$6FmWIs9*&f;nfo4UR17T zTw1DU3@Zih&<)dO#yn(FOA=Oo8-;YvrJ>yD*d@{VFNQPgz3=(c_-=Kt7(SE{!B4D~ zScY{t=PVpCp}G2gu_lyK`@i@VEWG4BrBoB5lI&kB#BBXTh@mvI7u7~lI_b5SLT6D! zqV6XdH_GW6$x==YxMf5Qn8jrjtg=tVMaUNnw)6HgDg+`$n`>u+QKr>iP8d`Ck}_aj zjl73f8O}fdDBO52(K$cwJ65DgL-fJAm z=ZzMi=g#-AiP?v#0S4eUF?k`z%CF!w$9pUEa)P&&#;$6;RglZC7`IsNW7N4nO_Bmk zqq3@=r3Geg@BDf@zqCR*TPD-6N^Q`6t3;=n_kR{&tsS&c7;AH+bL2IS&o~)r{&+@G z*Hz36z%D#0%Su@~$_{X>QW4ato@^Tx**HH{BbYRD*Z41=pPN%!R*-8WwO?Bh-(u%3 zX6~{9YI>jXBQRMOc*5-t$DYZ+9mWBjX)D!I&xF2!pDCKLu$%y2crkLIE+QuJa~>iX>$=v z`Eh~qlsf^X#<{5&J*&{<5w!yB~kM=`rthHdD&xrhIqYK$P4|Tpq2X#eO^u0`aaW zKHC)OVCX4U*hP#gj^GbmTu09p1f?>OIl11P!qKu2Vpj1DNnN(yLP=k7l(17($3*<* zaa1xoed`DrFMvBTy}s%l(-#ws5#c#W3HDOS^j_YBqf=QDB<&S-*I z2n1#bl3{uv87f}@g91<}-1v<528iV5RiRi?*hm22=YoK?YWyHCH_Q>vEdm9>{{e9j zJO{yd5c~%L`wu{A6jBYV2C8X+>KHXp>mmw?+0P*Mzx=<~BLl|{wzU87VPxPC1SA7| zP%;2O+WXL<(O%@ylk2?8Bm#(YT+z-9uT9>KLbnY zMUJ~7b(*2#0QoxUZRPGYHz#Pt3j zBpWeVpt^zQf-+uqK+&YfB_qCxH1&dyjq$~)=U1myp(PReqH?dLkHOK`r|fcF`=Vb| z)-^0jS<}#B^`kPp_}2WU*Zd}#f#DUB^X0Wfm!b3*rd&A z$Jn`q)?QzdT_!DuTIWzhsujBD==;$Ip@_YMx0}=zWo+WM6bgSO!Zk3FcP0sW`h_f| L(L^7kmUDjtg#W=9 literal 0 HcmV?d00001 diff --git a/app/build.gradle b/app/build.gradle new file mode 100755 index 0000000..7dcc801 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,57 @@ +apply plugin: 'com.android.application' + +android { + signingConfigs { + config { + storeFile file('../android.jks') + storePassword 'android' + keyAlias = 'android' + keyPassword 'android' + } + } + compileOptions { + sourceCompatibility 1.8 + targetCompatibility 1.8 + } + compileSdkVersion 27 + buildToolsVersion '28.0.3' + defaultConfig { + applicationId "com.virjar.sshdroid" + minSdkVersion 24 + targetSdkVersion 27 + versionCode 3 + versionName "1.3" + + + signingConfig signingConfigs.config + } + + buildTypes { + release { + minifyEnabled false + shrinkResources false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + + packagingOptions { + exclude 'META-INF/DEPENDENCIES' + } + +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + compileOnly 'com.virjar:ratel-api:1.3.6' + implementation 'com.android.support:appcompat-v7:27.1.1' + implementation "com.android.support:support-v4:27.1.1" + implementation "com.android.support:support-annotations:28.0.0" + implementation 'org.slf4j:slf4j-api:1.7.31' + implementation('org.apache.sshd:sshd-core:2.7.0') + implementation('org.apache.sshd:sshd-scp:2.7.0') + implementation('org.apache.sshd:sshd-sftp:2.7.0') + implementation 'org.bouncycastle:bcpkix-jdk15on:1.69' + + +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100755 index 0000000..d230c71 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,33 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in C:\Users\Bin\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + + +-dontwarn org.bouncycastle.** +-dontpreverify +-dontobfuscate +-ignorewarnings + +-keep class org.bouncycastle.openssl.** +-keep class org.bouncycastle.jce.provider.BouncyCastleProvider{*;} + + +-keep class com.virjar.sshdroid.Main{*;} +-keep class com.virjar.sshdroid.SSHD{*;} + + +-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100755 index 0000000..34f3c3c --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/assets/config.template.properties b/app/src/main/assets/config.template.properties new file mode 100644 index 0000000..322dfc9 --- /dev/null +++ b/app/src/main/assets/config.template.properties @@ -0,0 +1,3 @@ +targetPackage=com.xxx.xxx +ssdServerPort=3478 +newProcess=false \ No newline at end of file diff --git a/app/src/main/assets/sshdroid.pem b/app/src/main/assets/sshdroid.pem new file mode 100644 index 0000000..3bab08a --- /dev/null +++ b/app/src/main/assets/sshdroid.pem @@ -0,0 +1,16 @@ +-----BEGIN EC PRIVATE KEY----- +MIIChwIBAQRCASavnPa0fS6R9cx97Y0PBy0dqwwHnG4zlf5h5UylgV/8QMvOcgWr +a3mT1cabJMYOrdVtzJjX3QAJATgIg4GtdAw/oIIBsDCCAawCAQEwTQYHKoZIzj0B +AQJCAf////////////////////////////////////////////////////////// +////////////////////////////MIGIBEIB//////////////////////////// +//////////////////////////////////////////////////////////wEQgBR +lT65YY4cmh+SmiGgtoVA7qLacluZsxXzuLSJkY7xCeFWGTlR7H6TexZSwL07sb8H +NXPfiD0sNPHvRR/Ua1A/AASBhQQAxoWOBrcEBOnNnj7LZiOVtEKcZIE5BT+1Ifgo +r2BrTT26oUted+/nWSj+HcEnov+o3jNIs8GFakKb+X5+McLlvWYBGDkpaniaO8AE +XIpftCx9G9mY9URJV5tEaBevvRcnPmYsl+5ymV70JkDFULkBP60HYTU8cIaicsJA +iL6Udp/RZlACQgH///////////////////////////////////////////pRhoeD +vy+Wa3/MAUj3CaXQO7XJuImcR667b7cekThkCQIBAaGBiQOBhgAEAV7oPlj9TSuF +PkCANSWOrGeKLM6tl0Kc5prjSyc1kerg069XmCiQfbpWV2PKe0ZYsIpt230h5ahK +jlYbWcLHd7v9Ael2wzo9tC63eZtYH8/WigjEhIEAVYL1EeIxNI7kx52dpe+Lu0zo +L2WmjqD84VnEGNKZeNw0Et8YqVu0I5aI/b9O +-----END EC PRIVATE KEY----- diff --git a/app/src/main/assets/xposed_init b/app/src/main/assets/xposed_init new file mode 100755 index 0000000..011aae3 --- /dev/null +++ b/app/src/main/assets/xposed_init @@ -0,0 +1 @@ +com.virjar.sshdroid.Main \ No newline at end of file diff --git a/app/src/main/ic_launcher-web.png b/app/src/main/ic_launcher-web.png new file mode 100755 index 0000000000000000000000000000000000000000..d823eb9301a8a9ff66ffcaedddff3dbdf8e49e85 GIT binary patch literal 43768 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 + * The logging levels specified for SLF4J can be almost directly mapped to + * the levels that exist in the Google Android platform. The following table + * shows the mapping implemented by this logger. + *

+ * + * + * + * + * + * + * + *
SLF4JAndroid
TRACE{@link Log#VERBOSE}
DEBUG{@link Log#DEBUG}
INFO{@link Log#INFO}
WARN{@link Log#WARN}
ERROR{@link Log#ERROR}
+ * + * @author Thorsten Möller + */ +public class AndroidLogger extends MarkerIgnoringBase { + private static final long serialVersionUID = -1227274521521287937L; + + /** + * Package access allows only {@link AndroidLoggerFactory} to instantiate + * SimpleLogger instances. + */ + AndroidLogger(final String name) { + //this.name = name; + this.name = SSHD.TAG; + } + + /* @see org.slf4j.Logger#isTraceEnabled() */ + public boolean isTraceEnabled() { + // return Log.isLoggable(name, Log.VERBOSE); + return true; + } + + /* @see org.slf4j.Logger#trace(java.lang.String) */ + public void trace(final String msg) { + Log.i(name, msg); + } + + /* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object) */ + public void trace(final String format, final Object param1) { + Log.i(name, format(format, param1, null)); + } + + /* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object, java.lang.Object) */ + public void trace(final String format, final Object param1, final Object param2) { + Log.i(name, format(format, param1, param2)); + } + + /* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object[]) */ + public void trace(final String format, final Object... arguments) { + Log.i(name, format(format, arguments)); + } + + /* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Throwable) */ + public void trace(final String msg, final Throwable t) { + Log.i(name, msg, t); + } + + /* @see org.slf4j.Logger#isDebugEnabled() */ + public boolean isDebugEnabled() { + // return Log.isLoggable(name, Log.DEBUG); + return true; + } + + /* @see org.slf4j.Logger#debug(java.lang.String) */ + public void debug(final String msg) { + Log.d(name, msg); + } + + /* @see org.slf4j.Logger#debug(java.lang.String, java.lang.Object) */ + public void debug(final String format, final Object arg1) { + Log.d(name, format(format, arg1, null)); + } + + /* @see org.slf4j.Logger#debug(java.lang.String, java.lang.Object, java.lang.Object) */ + public void debug(final String format, final Object param1, final Object param2) { + Log.d(name, format(format, param1, param2)); + } + + /* @see org.slf4j.Logger#debug(java.lang.String, java.lang.Object[]) */ + public void debug(final String format, final Object... arguments) { + Log.d(name, format(format, arguments)); + } + + /* @see org.slf4j.Logger#debug(java.lang.String, java.lang.Throwable) */ + public void debug(final String msg, final Throwable t) { + Log.d(name, msg, t); + } + + /* @see org.slf4j.Logger#isInfoEnabled() */ + public boolean isInfoEnabled() { + //return Log.isLoggable(name, Log.INFO); + return true; + } + + /* @see org.slf4j.Logger#info(java.lang.String) */ + public void info(final String msg) { + Log.i(name, msg); + } + + /* @see org.slf4j.Logger#info(java.lang.String, java.lang.Object) */ + public void info(final String format, final Object arg) { + Log.i(name, format(format, arg, null)); + } + + /* @see org.slf4j.Logger#info(java.lang.String, java.lang.Object, java.lang.Object) */ + public void info(final String format, final Object arg1, final Object arg2) { + Log.i(name, format(format, arg1, arg2)); + } + + /* @see org.slf4j.Logger#info(java.lang.String, java.lang.Object[]) */ + public void info(final String format, final Object... arguments) { + Log.i(name, format(format, arguments)); + } + + /* @see org.slf4j.Logger#info(java.lang.String, java.lang.Throwable) */ + public void info(final String msg, final Throwable t) { + Log.i(name, msg, t); + } + + /* @see org.slf4j.Logger#isWarnEnabled() */ + public boolean isWarnEnabled() { + // return Log.isLoggable(name, Log.WARN); + return true; + } + + /* @see org.slf4j.Logger#warn(java.lang.String) */ + public void warn(final String msg) { + Log.w(name, msg); + } + + /* @see org.slf4j.Logger#warn(java.lang.String, java.lang.Object) */ + public void warn(final String format, final Object arg) { + Log.w(name, format(format, arg, null)); + } + + /* @see org.slf4j.Logger#warn(java.lang.String, java.lang.Object, java.lang.Object) */ + public void warn(final String format, final Object arg1, final Object arg2) { + Log.w(name, format(format, arg1, arg2)); + } + + /* @see org.slf4j.Logger#warn(java.lang.String, java.lang.Object[]) */ + public void warn(final String format, final Object... arguments) { + Log.w(name, format(format, arguments)); + } + + /* @see org.slf4j.Logger#warn(java.lang.String, java.lang.Throwable) */ + public void warn(final String msg, final Throwable t) { + Log.w(name, msg, t); + } + + /* @see org.slf4j.Logger#isErrorEnabled() */ + public boolean isErrorEnabled() { + // return Log.isLoggable(name, Log.ERROR); + return true; + } + + /* @see org.slf4j.Logger#error(java.lang.String) */ + public void error(final String msg) { + Log.e(name, msg); + } + + /* @see org.slf4j.Logger#error(java.lang.String, java.lang.Object) */ + public void error(final String format, final Object arg) { + Log.e(name, format(format, arg, null)); + } + + /* @see org.slf4j.Logger#error(java.lang.String, java.lang.Object, java.lang.Object) */ + public void error(final String format, final Object arg1, final Object arg2) { + Log.e(name, format(format, arg1, arg2)); + } + + /* @see org.slf4j.Logger#error(java.lang.String, java.lang.Object[]) */ + public void error(final String format, final Object... arguments) { + Log.e(name, format(format, arguments)); + } + + /* @see org.slf4j.Logger#error(java.lang.String, java.lang.Throwable) */ + public void error(final String msg, final Throwable t) { + Log.e(name, msg, t); + } + + /** + * For formatted messages substitute arguments. + * + * @param format + * @param arg1 + * @param arg2 + */ + private String format(final String format, final Object arg1, final Object arg2) { + return MessageFormatter.format(format, arg1, arg2).getMessage(); + } + + /** + * For formatted messages substitute arguments. + * + * @param format + * @param args + */ + private String format(final String format, final Object[] args) { + return MessageFormatter.arrayFormat(format, args).getMessage(); + } +} diff --git a/app/src/main/java/org/slf4j/impl/AndroidLoggerFactory.java b/app/src/main/java/org/slf4j/impl/AndroidLoggerFactory.java new file mode 100755 index 0000000..f03ebfe --- /dev/null +++ b/app/src/main/java/org/slf4j/impl/AndroidLoggerFactory.java @@ -0,0 +1,128 @@ +/* + * Created 21.10.2009 + * + * Copyright (c) 2009-2012 SLF4J.ORG + * + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package org.slf4j.impl; + +import java.util.StringTokenizer; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +import org.slf4j.ILoggerFactory; + +import android.util.Log; + +/** + * An implementation of {@link ILoggerFactory} which always returns + * {@link AndroidLogger} instances. + * + * @author Thorsten Möler + * @version $Rev:$; $Author:$; $Date:$ + */ +public class AndroidLoggerFactory implements ILoggerFactory +{ + private final ConcurrentMap loggerMap; + + static final int TAG_MAX_LENGTH = 23; // tag names cannot be longer on Android platform + // see also android/system/core/include/cutils/property.h + // and android/frameworks/base/core/jni/android_util_Log.cpp + + public AndroidLoggerFactory() + { + loggerMap = new ConcurrentHashMap(); + } + + /* @see org.slf4j.ILoggerFactory#getLogger(java.lang.String) */ + public AndroidLogger getLogger(final String name) + { + final String tag = forceValidName(name); // fix for bug #173 + + AndroidLogger logger = loggerMap.get(tag); + if (logger != null) return logger; + + logger = new AndroidLogger(tag); + AndroidLogger loggerPutBefore = loggerMap.putIfAbsent(tag, logger); + if (null == loggerPutBefore) + { + if (!tag.equals(name) && Log.isLoggable(AndroidLoggerFactory.class.getSimpleName(), Log.WARN)) + { + Log.i(AndroidLoggerFactory.class.getSimpleName(), new StringBuilder("SLF4J Logger name '") + .append(name) + .append("' exceeds maximum length of ") + .append(TAG_MAX_LENGTH) + .append(" characters; using '") + .append(tag) + .append("' as the Android Log tag instead.") + .toString()); + } + return logger; + } + return loggerPutBefore; + } + + /** + * Trim name in case it exceeds maximum length of {@value #TAG_MAX_LENGTH} characters. + */ + private final String forceValidName(String name) + { + if (name != null && name.length() > TAG_MAX_LENGTH) + { + final StringTokenizer st = new StringTokenizer(name, "."); + if (st.hasMoreTokens()) // note that empty tokens are skipped, i.e., "aa..bb" has tokens "aa", "bb" + { + final StringBuilder sb = new StringBuilder(); + String token; + do + { + token = st.nextToken(); + if (token.length() == 1) // token of one character appended as is + { + sb.append(token); + sb.append('.'); + } + else if (st.hasMoreTokens()) // truncate all but the last token + { + sb.append(token.charAt(0)); + sb.append("*."); + } + else // last token (usually class name) appended as is + { + sb.append(token); + } + } while (st.hasMoreTokens()); + + name = sb.toString(); + } + + // Either we had no useful dot location at all or name still too long. + // Take leading part and append '*' to indicate that it was truncated + if (name.length() > TAG_MAX_LENGTH) + { + name = name.substring(0, TAG_MAX_LENGTH - 1) + '*'; + } + } + return name; + } +} diff --git a/app/src/main/java/org/slf4j/impl/StaticLoggerBinder.java b/app/src/main/java/org/slf4j/impl/StaticLoggerBinder.java new file mode 100755 index 0000000..8233cb5 --- /dev/null +++ b/app/src/main/java/org/slf4j/impl/StaticLoggerBinder.java @@ -0,0 +1,85 @@ +/* + * Created 21.10.2009 + * + * Copyright (c) 2009-2012 SLF4J.ORG + * + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package org.slf4j.impl; + +import org.slf4j.ILoggerFactory; +import org.slf4j.LoggerFactory; +import org.slf4j.spi.LoggerFactoryBinder; + +/** + * The binding of {@link LoggerFactory} class with an actual instance of + * {@link ILoggerFactory} is performed using information returned by this class. + * + * @author Ceki Gülcü + * @author Thorsten Möler + */ +public class StaticLoggerBinder implements LoggerFactoryBinder +{ + + /** + * The unique instance of this class. + */ + private static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder(); + + /** + * Return the singleton of this class. + * + * @return the StaticLoggerBinder singleton + */ + public static final StaticLoggerBinder getSingleton() + { + return SINGLETON; + } + + /** + * Declare the version of the SLF4J API this implementation is compiled + * against. The value of this field is usually modified with each release. + */ + // to avoid constant folding by the compiler, this field must *not* be final + public static String REQUESTED_API_VERSION = "1.6.99"; // !final + + /** + * The ILoggerFactory instance returned by the {@link #getLoggerFactory} + * method should always be the same object + */ + private final ILoggerFactory loggerFactory; + + private StaticLoggerBinder() + { + loggerFactory = new AndroidLoggerFactory(); + } + + public ILoggerFactory getLoggerFactory() + { + return loggerFactory; + } + + public String getLoggerFactoryClassStr() + { + return AndroidLoggerFactory.class.getName(); + } +} diff --git a/app/src/main/java/org/slf4j/impl/StaticMDCBinder.java b/app/src/main/java/org/slf4j/impl/StaticMDCBinder.java new file mode 100755 index 0000000..079d60e --- /dev/null +++ b/app/src/main/java/org/slf4j/impl/StaticMDCBinder.java @@ -0,0 +1,63 @@ +/* + * Created 21.10.2009 + * + * Copyright (c) 2009-2012 SLF4J.ORG + * + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package org.slf4j.impl; + +import org.slf4j.helpers.NOPMDCAdapter; +import org.slf4j.spi.MDCAdapter; + +/** + * This implementation is bound to {@link NOPMDCAdapter}. + * + * @author Ceki Gülcü + * @author Thorsten Möler + */ +public class StaticMDCBinder +{ + + /** + * The unique instance of this class. + */ + public static final StaticMDCBinder SINGLETON = new StaticMDCBinder(); + + private StaticMDCBinder() + { + } + + /** + * Currently this method always returns an instance of + * {@link StaticMDCBinder}. + */ + public MDCAdapter getMDCA() + { + return new NOPMDCAdapter(); + } + + public String getMDCAdapterClassStr() + { + return NOPMDCAdapter.class.getName(); + } +} diff --git a/app/src/main/java/org/slf4j/impl/StaticMarkerBinder.java b/app/src/main/java/org/slf4j/impl/StaticMarkerBinder.java new file mode 100755 index 0000000..2075595 --- /dev/null +++ b/app/src/main/java/org/slf4j/impl/StaticMarkerBinder.java @@ -0,0 +1,73 @@ +/* + * Created 21.10.2009 + * + * Copyright (c) 2009-2012 SLF4J.ORG + * + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package org.slf4j.impl; + +import org.slf4j.IMarkerFactory; +import org.slf4j.MarkerFactory; +import org.slf4j.helpers.BasicMarkerFactory; +import org.slf4j.spi.MarkerFactoryBinder; + +/** + * The binding of {@link MarkerFactory} class with an actual instance of + * {@link IMarkerFactory} is performed using information returned by this class. + * + * @author Ceki Gülcü + * @author Thorsten Möler + */ +public class StaticMarkerBinder implements MarkerFactoryBinder +{ + + /** + * The unique instance of this class. + */ + public static final StaticMarkerBinder SINGLETON = new StaticMarkerBinder(); + + private final IMarkerFactory markerFactory = new BasicMarkerFactory(); + + private StaticMarkerBinder() + { + } + + /** + * Currently this method always returns an instance of + * {@link BasicMarkerFactory}. + */ + public IMarkerFactory getMarkerFactory() + { + return markerFactory; + } + + /** + * Currently, this method returns the class name of + * {@link BasicMarkerFactory}. + */ + public String getMarkerFactoryClassStr() + { + return BasicMarkerFactory.class.getName(); + } + +} diff --git a/app/src/main/java/org/slf4j/impl/package-info.java b/app/src/main/java/org/slf4j/impl/package-info.java new file mode 100644 index 0000000..05dcf6c --- /dev/null +++ b/app/src/main/java/org/slf4j/impl/package-info.java @@ -0,0 +1,3 @@ +/* + * https://github.com/twwwt/slf4j/tree/master/slf4j-android + */ \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_fab_weimi.png b/app/src/main/res/drawable/ic_fab_weimi.png new file mode 100644 index 0000000000000000000000000000000000000000..8d8647ab9ac6f6a8c60a7c3d334760f5c0b56193 GIT binary patch literal 1162 zcmV;51a)Cy`7wMW{dzs=J%?AjVs%4r1@Lbae~2!LorQPZeq z)TPq^r~);L`VH!19~D8B`4LbhY8KoJHZsfo04Nvr4!nyYRF0{D8c;vL``AL&n*=Bk z)d%K9FY3J4fYMPDU~Y_|E_ekf8?^}L#{%`$RY2)JffEZU%`HHQhCf!k7#Eq7L;yVp z|Hf0@fEo-3aEKZ~wOL$qR~MjML-L%Hg6;46QP-%ikvMr$NC%*|27>vC>Otkl^z%B6 zB&&F>8c?NSVAfHcsLT`kI%xAd%2WcHH3ZBOstJ|E>E~q!cFL40KotgnS)>KxOq{+x zarnI@DgcdooV!%p9OV~LI}X2pL>5p;li6hz2dH6Gp~DoUOVD)7mI2h_BA8#~3S1FL zUYS?DA=vIc89*~G`8VB8a+4DjmS}%c6i}+9!5%NZp;|>Zkuf?;6%f(bMJ0;>s?`YR zz6vvo)Tp38)gpj8G{IR_2#4v5fyMB%x>B{b3 zdbQQ~tPoBTdC@weO$1Plf`%Iu!g-)^^L$GLP>SSIzhuKhj;9P7$?F>72-_V@(-I9g zNr1_t)oL5`$ApZd*euxSI`B&~Rw|$gGYalSSk|=P7ihH8A($fCTOESC!KRQbkSzN| z95%|z!I?I}+)-#*h{Oj_P!}t6*l3Rp54lm16DS)uK~d>>#=(%yw^$X!ntUeZle1Gm z;NN%*E}U{@Ud@;f;e14$1D6hxv)a~zkKlZQ zzh@0xe-&ZDCvdVv?^D*NNh3?u + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..1d558b57a2c9783585c57a75573f502ecde10253 GIT binary patch literal 3738 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 Ef?Tm2G5`Po literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100755 index 0000000000000000000000000000000000000000..9082cf5cfd5bd8b973ee0df8c488c8b15a517e07 GIT binary patch literal 2837 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 Z{{W6ie}@F3OacG^002ovPDHLkV1fjvvvmLf literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100755 index 0000000000000000000000000000000000000000..10d52e7dccdb912e0d39c8b49469eb71129217ff GIT binary patch literal 2200 zcmaJ@dpwl+9v+5>$d*e;#&j9NT+J|(Aq*koewjswG4o<#=AC9<43WzobkM2RNjI0; z*+NN$tt>H$#8LJjavvm;T1n-yo1JOXoN?p!NO37!Ht0jn49E|Rgc6tn0Or63BLIXOml*~40!((|p*Fx4 z27@Cx{tSpg_n@#qE}ALFphaB1j17a?+Kc#1Rtx|kB7i6kkBa=Yt`Ujgu&Kx(A{|TT zI|0!g*CYYpm*nZsN{V5T*+_dkgsq4o6W{_66CvWp@`Mx-75Pb*BAd&%F-XKG2oys_ z{+Sem?u~E)1ptDGCRnntI2?jRLgTE6BofX7fyd(T7_96iS>miHL=pvWjrjZ^Wzhue zNQy7b<#R0Aii(VeAU*|yNk~XQClJt}APR#clgV-oJl;}7ONV`Cnvt!q3MfJ1~rh$;aT(Sb0fnKsx>ZL%G~9Xd&ba z{FU$j6c+j?@&Sx5AOzzCELr0sx64EEDNX`_34sEC5R6?rMek@30)^2aAK~OjLYM|| zcx*61X!Z$Dr&HW`LWs#@0d6!ZQl^0BaM%tT-;fgVwn0zqmGE<;tzV<;x<|00Ac+V7mxFF5*+k6wcRkA%0cwGnf7K zTu5K#Vr0o+g?H9Q2)ORhx;?%c{Q-3raH)@)^9t> ztE(kGR`l(LvHCX@7%CNt!Re6_%;W6zTuGvID__k;IH+h@mCQD%OZ$DVw|R+j%NAapat$0FJQ=ISV4Y5* zOY#B}CrbZw;7S@Q{Z9O(1=>b?=Y@TBNfju)&d}~@Cy9^5j3B0WqF%gh+`iCa|BZoK z^K{0!p4G6|ao$nl^Q2p%7fpusJ<>xDJqy-{6XwpIiVG*sS$dlj?gi=nurMpNC@MVq zoO`>n-w6X9aQbkafiy=d4Z#Z^p(Gl~Dnq-v-rXo2r;aoT$9rSGVwl3z0nY zPi6|=@l=e0NB4&C=G$_%D8617QL8ko^0)6_yotKg4sS&_9oST^nVxbrhLccNLNOdF zCw1dyj5WHOgeE!aMszJvGK(-gGF_naChx5H+r8>oiGbosybplgxBgbMn+x^Uo1(V`<(271Sky!{ zM7HNZ+QqkCWx+gMelAnygd4xYkZoRpXg@&pBe`#Duqp`0r;n%-nF_Q;|C(&5YHy zADI7X{OtI5VN=r+qtBxi{YsI=VcM(5JDTH`ZKGqZsVix>H-$A0I-K~Os_k`~<8;U8 zyUpkBXlz~N*41XkkND;nUz>lrMg0sgwiJAKk#%BuUF7Z=sfyOzyZBz6gSwD5vh)3W ze%Ux!)`EK(8W>!@s}Zn%nk@F(*fV~P${u@fWu+q)rYL- zeXdpn8b&IVUS&x1v&%Nc1h^KHQ#tj`@Bq^^@^Ql@Np^s#^eFivQ{kY_$)J{E$6(3M z3ynES3+j(^uWVAGwf!Ke3Tqf@jTkj)I)zu}7fse?WLCUj^eZuDR}#g$enbW6qr%{~ z6cQ}l*&dB#jC2JuR}s1$K3c~&OjT=MXsABMsdA7$aqf$>l7`Hw&QZNfECZfh8Mt_o z-(O_AKdIeeDiHs~nQ*|=C=9m8ETF6RShd(a7SX{<9 zEI+Gv&p)Zu)jD7QFmy-A^SG|wKx69N%bs3dnXe|dqE?cAvmc4T|B|9?y|k^em)mPR zI}}NjDkP=X;x|n-tTZ!j{n}%AM^kiZLy5swrOMNje(kN>=n+2;qjT=JB+oXPyxCW8 zXK?cvl-_f>lUv|7BQ&h6o=2Cysij{tJA$*jO*XHRY_3wyjD24MgTtzG2aTKm6=)>C OE4Vp((kdOpGyVXEY?IRf literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..cdb25b595b8c6858e515015e522b9488758783f3 GIT binary patch literal 3930 zcmaKuXE@srw8wvmt+h9`N2xvks`iZ5h!s&Y6t&e38bOU#t=eK!qYXu=RE=n<5u>zJ zjoPb5qKewL_w9XgUwqH!oaemzexK(&=PA_8h>n(<761S`V~D=xKf3&{s44%|<@|8f zf1nA3*aZWCjPU;o6!B6k3;<|Nz4Y{;(1!sb0l^Og0tJlq^aKKf0zABY-2otCrr0VR zo^{Nwxp3^x0Mnf&HRbun0z$%A>H$W(3dR=z;t3K90xF6aifkJNCg1} z;zlB1?GJ#9O{}F982=F{!)go3kmDObXuEd`MqqR&1rU}7&tTAY0ni1yQp13NDj3k? zV;Lb6Fd-|Go9JGwa}G?vK|lbWkTa5ZZ$gn3m-B@?{5NTFS#bHIZ<8*9LxRzRW>u&t z4#Ixa9vi;IKYbOKKBNF4O~L(z%Z}$@a)8lnj5y=G zwl+l;*biz9?e?j&2WDWv!-W$^#aWuN`?OyoPg0Po=h}QF<LsV_K~v&_5|qp;7PdqI;GP6uEU&GBaMs9FiWc+?&UoI($u z2m`cH2hz{EuVn&^o=OVHV*tqNK1tV>1OX#?RVx6{vB~LBo6TYJnHm7}%VKXe>QG(p zVa4L>D^#`+Y4x_p{Gs!Q&xH436mB z3ZHTA7CsI1yNa6edz+ylz~g6WZs>7&dXMKn5Dw3i3|yYVxyAa~-PYjBuykcNUig1u zY&`f91d&<}%0_|Z2mBf|)80@te*-4SkKZl|`TiGL#h@upB#t$B-RB=bpc zgsWOp2HX%UwkOCZSR(3llb*#n3nD^4_+r(JR!}rU!T6f74`dc1U1e3JIl<^vWFoem z;WzkmmAV;?70AnM%V5Ybe{nYWX|;`2tuJ}mgr-8ovMQVTuClw<8u`mo1>J(OR~936 zCEuuDC99R*H})$FgUVVZ)v+jr7K)Bw*!2ii(v_263cWnNjvvZyg|ySm$MYHFeaV~f z*`(Uq*oyxXew{9nF1{b)D$eD@6~$G<*~TSXU{X!-HLqa6TJF07Pl0DXLw?I~g+{J9VRLPE0T?ON3NfyS07hN)=@Ptl+*6*PRN2k!?%)@;?8 zC++rRkxvPt>qp1zd1}H-gQC8>DJm)bxih)Z1d3eK++%D$OcREL9m2k2ji(&8rMCU1 zY<;0TwwUV}H4NchZ9S&GHw@#qz`D$uE-@i-Xyrd6zjMAryHmJBxqJHvaU^==cQnR3 ze1n;H>Q2a==%A3$;V|F8j_s-?rB8Leb)U9uJ$XFKgNqN8IjZkv5Sa7A@;I#gYM#~j zmqrqD*0}fDCtANAR$@M2=IVd=eVZTF=zIM7%v1)$GwAq9gQ)X|bPQj9G`vz=gQ@v= zkg*}_6y{{-bk@md{cPiYYB|jCz3)6;OR*vNimU zI(gB^HyOw8#Z|y@@|acPmclEUUluJ^A&)|irKYf}c4wZQY5VDQ&)?sf^?nx==85(8 zwe)q{!QjxiSGd@Sq`wCHdCVa!A~d^CS9_;>HJ+{ngExE&6^m92t#d=%8rJ42-gB&P zjS@=2)$Nq+GNM%z@|p9RwbtSVbfL1G=4&AZ4VB)`kG ziMN@1NJ?hWts>X`hIq1)hK^T-Pl69-*?bdB#w%Ma8=&;;CbG4X5%!$+5jaREZi5f(!YNi9;WF}$mhBHByhsy|2@eU)xfjr7 zxTVc+Z{*zXG|TvjmoN1s<7}03>aqt3{tbWbzjtFpUs84*La-$?*0rZ zkMurF8)+FC8X;3gDDT=2zr)V{E?22MiY$(CB)~4}U$=Gr5Sy9mo)3>YppWNeyYrKn zz0=Vu8DZ9!?h#o`+KC#!K;D>V;lN{Y?2G`Sg`(4Jd6xm7qyu;JxFE)PzC)$4aH|%JaBb;{6 zWX>@%J>t!I*UZH)s#AtvF)f!(?s&h&zb<%}u}^jkM0%Q}lFRI?uSrW2M#Dyv!iK`B z>Bao~JapWhzaNZdE!8yFu#63%U{}cP;MW@q7t3e&#^C4Eq-!TBW8DqNx`QC%>$*2; z{lfkH9ivE%{p$1j(b>mD9I<_&zmvZ}{9OAIdN6+K)?f3*{8)1%`tn@%_{qVU=tQaF zzi(5(4Pt2u0Fj~qfQ|=%ldFH+0)S9C0Qlts0BZRFz!C7mxz7*)$dioqb*v+1c8VR7 z*=&IRn742dpAVGm`p1h#OvV^X|J;`v-|SmCXZ2X`{bXTgGUn3B)NEU&aKFYIq(M zamilSt6o9!`6cj6k^6)E!MWg+SOWTIOtu>6oc0Fg5oiVf9j-WT=IkE%(`lBL6mNjn z!)xF}B{aRj5&X4?5e8`VYk9h;SA2l3&7`PRHWD*_Ao*z*)d||fhP?q{$8wk?4=54(G9@AzpzY^ z{BKY6;=QsrsfNj*Mp~b=YjLnokvTD@ek_7mO` zd!i8la-;~;h^P4!L+`_9!lsEQ?&$L-nO# zcRh7usaW*p=Na$*iAsE+%m!ja#RcQG_4?^vS8fFbHdN~P8cA;I$?Xz?6&}^!Oy3OzN?Z9XW1pObgWE_~j&;bu8M`4QWU2umtrm`o)wUCHXgNQ}dhe za6g00t$4IklEN8nNv8ROh`p;6#HMeN1Wxn&6=-;u6~z0L9D*jNrpW*VLCgXo+TbVu z<_v&_ky!ww3m!^8o6y(Fr<$Xf14)5osM>kA?KYw7s^dbl6`LTLN8;h+s@u>#R+3^M z^)!8SoO0?`!izU_sc|v6551hC7^6U^Fy~d+Lc-S6`NObjo%70>7EWPt`8E2Pzb*N9TP@(VM$?r;nF$FO^AZ$Q~h9 zHJj(fCzeYag8#26BHI6tVS-D=Y28>73FHSMvEUc1i^ZAY($FL z&2TLYWWTvoN@XiGqV@FdBAbgk7G@Tzy*aNhdwm`<^q;hQld-voz_w|mPz_=;yJ9dw z!WQ%)$3|u+j7{zpHVE;}29Lp8tmQ};tvK+K>l3Z{CjxY;A76bjA->YO5+5k!)t5#1 zi+5Wqp?g%vo+u)GKBIZi@@vzq7AT7}8ZlQzEnF)Du5`1f-nODfVzgHzFymiOyu7F# hiZSi2Uc2}XD0bTC!+7Oa|D7+u*uYG`LDwbje*k(QQj-7x literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100755 index 0000000000000000000000000000000000000000..6cb1f3ea17bc3069d635479e0800cf69c894c952 GIT binary patch literal 3378 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..203950bb1db47f027014b1e8c64bccd11984c5dc GIT binary patch literal 4511 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100755 index 0000000000000000000000000000000000000000..830f21bf0fa3a5f46ee58c0a99bfbc288a7ccf5f GIT binary patch literal 4610 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..16222ab501399830dc0b7826790e39db1904fa70 GIT binary patch literal 4878 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100755 index 0000000000000000000000000000000000000000..cf545a9807b3bfc4340dcbf839a28905e6ac2270 GIT binary patch literal 5854 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 + + #009df1 + #0079f1 + #0059b0 + #238cf4 + #FFF + #B2000000 + #f1f1f1 + #e91e63 + #ec407a + #805677fc + #80738ffe + #808080 + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100755 index 0000000..8d0e11c --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,7 @@ + + SSHDroid + 给app私有文件系统提供ssh服务 + 目标app: + 服务端口: + 独立进程: + diff --git a/app/src/main/res/values/style.xml b/app/src/main/res/values/style.xml new file mode 100755 index 0000000..a526718 --- /dev/null +++ b/app/src/main/res/values/style.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100755 index 0000000..1daa71a --- /dev/null +++ b/build.gradle @@ -0,0 +1,23 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + google() + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:4.0.0' + } +} + +allprojects { + repositories { + jcenter() + google() + maven { url 'https://jitpack.io' } + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100755 index 0000000..527d5a7 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,16 @@ +## Project-wide Gradle settings. +# +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx1024m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +# +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +#Tue Jul 04 22:35:43 CST 2017 +android.useAndroidX=true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..f6b961fd5a86aa5fbfe90f707c3138408be7c718 GIT binary patch literal 54329 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

<5G2M1WZP5 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 F{|7XC?P&l2 literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..46d4d6c --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Thu Jun 18 13:05:53 CST 2020 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..cccdd3d --- /dev/null +++ b/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100755 index 0000000..f955316 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100755 index 0000000..e7b4def --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include ':app'