-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
*.iml | ||
*.bak | ||
.gradle | ||
/local.properties | ||
/.idea/workspace.xml | ||
/.idea/libraries | ||
.DS_Store | ||
/build | ||
/captures | ||
.externalNativeBuild | ||
.git |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
SMS302 | ||
=============== | ||
|
||
短信或者来电转发到 Email | ||
|
||
* 使用 256-bit AES 加密本地数据和短信数据 | ||
* 邮箱自己发送给自己接收,方便配置邮箱过滤器 | ||
* 可配置 SMTP 服务器,默认仅支持 ssl 模式 | ||
* 可选择发送加密短信或者明文短信 | ||
|
||
|
||
# 源码使用方式 | ||
|
||
Clone 或者下载代码,修改加密参数如 `IV` 和 `KEY`,构建生成 release 安装包。 | ||
或者修改加密方式等其它任何细节后构建。 | ||
|
||
|
||
# 直接下载 release 版本 | ||
|
||
[SMS302-V0.2-release.apk](https://github.com/mrqyoung/SMS302-V0.2-release.apk) | ||
(建议使用源码并修改加密参数后生成只属于你自己的安装包) | ||
|
||
## App 使用帮助 | ||
|
||
1. [Email] 输入「@Help」点击按钮显示帮助 | ||
2. [Email] 输入「@SetKey」,并在[Password]中输入密码,点击按钮设置主密码 | ||
3. [Email] 输入邮箱,并在[Password]中输入密码,点击按钮设置邮箱信息 | ||
3a. 若在 2 中未设置主密码,则转发的短信不加密 | ||
4. [Email] 输入「@Test」点击按钮发送测试邮件 | ||
5. [Email] 输入「@SetSMTP」,并在[Password]中输入"HOST:PORT"可设置邮箱服务器 | ||
5a. 默认的邮箱服务器为QQ邮箱"smtp.qq.com:587" | ||
6. 修改任何数据只需直接重设;SetKey后需要重设邮箱密码 | ||
7. [Email] 输入「@Clear」点击按钮清空所有密码 | ||
8. 收到加密短信后,复制短信内容到 `SMS302` 的 [Email] 输入框,点击帮助文字显示出即可解密。注意:请使用「@SetKey」在两台手机上设置同样的主密码 | ||
|
||
|
||
## AES 加密部分使用了 [AESCrypt-Android ](https://github.com/scottyab/AESCrypt-Android) | ||
|
||
使用了 `com.scottyab.aescrypt.AESCrypt` (Copyright (c) 2014 Scott Alexander-Bown) | ||
项目地址:https://github.com/scottyab/AESCrypt-Android | ||
文件地址:https://github.com/scottyab/AESCrypt-Android/blob/master/aescrypt/src/main/java/com/scottyab/aescrypt/AESCrypt.java | ||
|
||
|
||
## Licence | ||
|
||
Copyright 2017 Mr.Q.Young (Yorn) | ||
|
||
Licensed under the Apache License, Version 2.0 (the "License"); | ||
you may not use this file except in compliance with the License. | ||
You may obtain a copy of the License at | ||
|
||
http://www.apache.org/licenses/LICENSE-2.0 | ||
|
||
Unless required by applicable law or agreed to in writing, software | ||
distributed under the License is distributed on an "AS IS" BASIS, | ||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
See the License for the specific language governing permissions and | ||
limitations under the License. | ||
|
||
|
||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/build |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
apply plugin: 'com.android.application' | ||
|
||
android { | ||
compileSdkVersion 25 | ||
buildToolsVersion "25.0.3" | ||
defaultConfig { | ||
applicationId "com.mrqyoung.sms302" | ||
minSdkVersion 15 | ||
targetSdkVersion 25 | ||
versionCode 1 | ||
versionName "1.0" | ||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" | ||
} | ||
buildTypes { | ||
release { | ||
minifyEnabled false | ||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | ||
} | ||
} | ||
|
||
packagingOptions {//mrqyoung | ||
pickFirst 'META-INF/LICENSE.txt' // picks the JavaMail license file | ||
} | ||
} | ||
|
||
repositories {//mrqyoung | ||
jcenter() | ||
maven { | ||
url "https://maven.java.net/content/groups/public/" | ||
} | ||
} | ||
|
||
dependencies { | ||
compile fileTree(dir: 'libs', include: ['*.jar']) | ||
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { | ||
exclude group: 'com.android.support', module: 'support-annotations' | ||
}) | ||
compile 'com.android.support:appcompat-v7:25.3.1' | ||
compile 'com.android.support:design:25.3.1' | ||
testCompile 'junit:junit:4.12' | ||
compile 'com.sun.mail:android-mail:1.5.5' | ||
compile 'com.sun.mail:android-activation:1.5.5' | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Add project specific ProGuard rules here. | ||
# By default, the flags in this file are appended to flags specified | ||
# in E:\Development\ENV\Android\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 *; | ||
#} | ||
|
||
# Uncomment this to preserve the line number information for | ||
# debugging stack traces. | ||
#-keepattributes SourceFile,LineNumberTable | ||
|
||
# If you keep the line number information, uncomment this to | ||
# hide the original source file name. | ||
#-renamesourcefileattribute SourceFile |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
package com.mrqyoung.sms302; | ||
|
||
import android.content.Context; | ||
import android.support.test.InstrumentationRegistry; | ||
import android.support.test.runner.AndroidJUnit4; | ||
|
||
import org.junit.Test; | ||
import org.junit.runner.RunWith; | ||
|
||
import static org.junit.Assert.*; | ||
|
||
/** | ||
* Instrumentation test, which will execute on an Android device. | ||
* | ||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a> | ||
*/ | ||
@RunWith(AndroidJUnit4.class) | ||
public class ExampleInstrumentedTest { | ||
@Test | ||
public void useAppContext() throws Exception { | ||
// Context of the app under test. | ||
Context appContext = InstrumentationRegistry.getTargetContext(); | ||
|
||
assertEquals("com.mrqyoung.sms302", appContext.getPackageName()); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
package="com.mrqyoung.sms302"> | ||
|
||
<!-- To auto-complete the email text field in the login form with the user's emails --> | ||
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> | ||
<uses-permission android:name="android.permission.READ_PROFILE" /> | ||
<uses-permission android:name="android.permission.READ_CONTACTS" /> | ||
<uses-permission android:name="android.permission.INTERNET" /> | ||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | ||
<uses-permission android:name="android.permission.RECEIVE_SMS" /> | ||
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> | ||
|
||
<application | ||
android:allowBackup="true" | ||
android:icon="@mipmap/ic_launcher" | ||
android:label="@string/app_name" | ||
android:roundIcon="@mipmap/ic_launcher_round" | ||
android:supportsRtl="true" | ||
android:theme="@style/AppTheme"> | ||
<activity | ||
android:name=".LoginActivity" | ||
android:label="@string/app_name"> | ||
<intent-filter> | ||
<action android:name="android.intent.action.MAIN" /> | ||
|
||
<category android:name="android.intent.category.LAUNCHER" /> | ||
</intent-filter> | ||
</activity> | ||
|
||
<service | ||
android:name=".SMS302IntentService" | ||
android:exported="false" /> | ||
|
||
<receiver | ||
android:name=".SMS302Receiver" | ||
android:enabled="true" | ||
android:exported="true" | ||
android:permission="android.permission.BROADCAST_SMS"> | ||
<intent-filter> | ||
<action android:name="android.intent.action.PHONE_STATE" /> | ||
<action android:name="android.provider.Telephony.SMS_RECEIVED" /> | ||
</intent-filter> | ||
</receiver> | ||
|
||
<service | ||
android:name=".RetryService" | ||
android:enabled="true" | ||
android:exported="false" /> | ||
</application> | ||
|
||
</manifest> |