Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
G
g4proxy
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
g4proxy
Commits
f130feff
Commit
f130feff
authored
Apr 17, 2019
by
Administrator
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
5bfb543f
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
89 additions
and
23 deletions
+89
-23
build.gradle
LittleProxy/build.gradle
+4
-1
Launcher.java
...leProxy/src/main/java/org/littleshoot/proxy/Launcher.java
+9
-9
build.gradle
app/build.gradle
+4
-1
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+9
-10
HttpProxyService.java
app/src/main/java/com/virjar/g4proxy/HttpProxyService.java
+10
-2
LogbackConfig.java
app/src/main/java/com/virjar/g4proxy/LogbackConfig.java
+41
-0
ClientIdleCheckHandler.java
...com/virjar/g4proxy_new/client/ClientIdleCheckHandler.java
+6
-0
NatClientChannelHandler.java
...om/virjar/g4proxy_new/client/NatClientChannelHandler.java
+6
-0
No files found.
LittleProxy/build.gradle
View file @
f130feff
...
...
@@ -6,7 +6,10 @@ dependencies {
implementation
'org.slf4j:slf4j-api:1.7.24'
implementation
'com.google.guava:guava:23.4-android'
implementation
'org.apache.commons:commons-lang3:3.7'
implementation
'org.littleshoot:dnssec4j:0.1.6'
compile
(
'org.littleshoot:dnssec4j:0.1.6'
)
{
exclude
group:
'org.slf4j'
,
module:
'slf4j-log4j12'
exclude
group:
'log4j'
,
module:
'log4j'
}
}
sourceCompatibility
=
"1.7"
...
...
LittleProxy/src/main/java/org/littleshoot/proxy/Launcher.java
View file @
f130feff
package
org
.
littleshoot
.
proxy
;
import
org.apache.log4j.xml.DOMConfigurator
;
//
import org.apache.log4j.xml.DOMConfigurator;
import
org.littleshoot.proxy.impl.DefaultHttpProxyServer
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -30,7 +30,7 @@ public class Launcher {
* @param port Any command line arguments.
*/
public
static
void
startHttpProxyService
(
int
port
)
{
pollLog4JConfigurationFileIfAvailable
();
//
pollLog4JConfigurationFileIfAvailable();
System
.
out
.
println
(
"About to start server on port: "
+
port
);
HttpProxyServerBootstrap
bootstrap
=
DefaultHttpProxyServer
...
...
@@ -43,11 +43,11 @@ public class Launcher {
bootstrap
.
start
();
}
private
static
void
pollLog4JConfigurationFileIfAvailable
()
{
File
log4jConfigurationFile
=
new
File
(
"src/test/resources/log4j.xml"
);
if
(
log4jConfigurationFile
.
exists
())
{
DOMConfigurator
.
configureAndWatch
(
log4jConfigurationFile
.
getAbsolutePath
(),
15
);
}
}
//
private static void pollLog4JConfigurationFileIfAvailable() {
//
File log4jConfigurationFile = new File("src/test/resources/log4j.xml");
//
if (log4jConfigurationFile.exists()) {
//
DOMConfigurator.configureAndWatch(
//
log4jConfigurationFile.getAbsolutePath(), 15);
//
}
//
}
}
app/build.gradle
View file @
f130feff
...
...
@@ -57,7 +57,10 @@ dependencies {
api
'ir.mtajik.android:advancedsmsmanager:1.1.0'
api
'com.google.dagger:dagger:2.7'
annotationProcessor
'com.google.dagger:dagger-compiler:2.7'
implementation
project
(
':g4proxy-new'
)
api
project
(
':g4proxy-new'
)
api
'com.github.tony19:logback-android:1.3.0-2'
// compileOnly 'org.projectlombok:lombok:1.18.2'
}
app/src/main/AndroidManifest.xml
View file @
f130feff
...
...
@@ -81,15 +81,14 @@
</intent-filter>
</receiver>
<!--覆盖安装后唤醒service-->
<receiver
android:name=
"com.virjar.g4proxy.SelfStartReceiver"
>
<intent-filter>
<action
android:name=
"android.intent.action.PACKAGE_ADDED"
/>
<action
android:name=
"android.intent.action.PACKAGE_REPLACED"
/>
<action
android:name=
"android.intent.action.PACKAGE_REMOVED"
/>
<data
android:scheme=
"package"
/>
</intent-filter>
</receiver>
<!--<!–覆盖安装后唤醒service–>-->
<!--<receiver android:name="com.virjar.g4proxy.SelfStartReceiver">-->
<!--<intent-filter>-->
<!--<action android:name="android.intent.action.PACKAGE_REPLACED" />-->
<!--<data android:scheme="package" />-->
<!--</intent-filter>-->
<!--</receiver>-->
<service
android:name=
"top.wuhaojie.installerlibrary.InstallAccessibilityService"
...
...
@@ -119,7 +118,7 @@
<service
android:name=
"com.virjar.g4proxy.AppUpdateService"
android:enabled=
"true"
android:exported=
"true"
></service
>
android:exported=
"true"
/
>
</application>
</manifest>
\ No newline at end of file
app/src/main/java/com/virjar/g4proxy/HttpProxyService.java
View file @
f130feff
...
...
@@ -19,13 +19,14 @@ import com.tencent.mm.R;
import
com.virjar.g4proxy_new.client.G4ProxyClient
;
import
com.virjar.g4proxy_new.client.LittelProxyBootstrap
;
import
com.virjar.nat.ALOG
;
import
com.virjar.nat.client.ProxyClient
;
import
com.virjar.nat.protocol.Constants
;
import
org.littleshoot.proxy.Launcher
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.concurrent.atomic.AtomicBoolean
;
import
static
android
.
app
.
PendingIntent
.
FLAG_UPDATE_CURRENT
;
/**
...
...
@@ -33,10 +34,14 @@ import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
*/
public
class
HttpProxyService
extends
Service
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
HttpProxyService
.
class
);
@Nullable
@Override
public
IBinder
onBind
(
Intent
intent
)
{
startService
();
return
null
;
}
...
...
@@ -143,6 +148,8 @@ public class HttpProxyService extends Service {
//新的代理服务器实现
LogbackConfig
.
config
();
//默认使用3128,为了不影响之前的代码,先设置为3129
LittelProxyBootstrap
.
setLittelServerPort
(
3129
);
G4ProxyClient
g4ProxyClient
=
new
G4ProxyClient
(
"www.scumall.com"
,
50000
,
clientKey
);
...
...
@@ -151,4 +158,5 @@ public class HttpProxyService extends Service {
// g4ProxyClient2.startup();
}
}
app/src/main/java/com/virjar/g4proxy/LogbackConfig.java
0 → 100644
View file @
f130feff
package
com
.
virjar
.
g4proxy
;
import
org.slf4j.LoggerFactory
;
import
ch.qos.logback.classic.Level
;
import
ch.qos.logback.classic.Logger
;
import
ch.qos.logback.classic.LoggerContext
;
import
ch.qos.logback.classic.android.LogcatAppender
;
import
ch.qos.logback.classic.encoder.PatternLayoutEncoder
;
public
class
LogbackConfig
{
static
{
configLog
();
}
public
static
void
config
()
{
}
private
static
void
configLog
()
{
LoggerContext
context
=
(
LoggerContext
)
LoggerFactory
.
getILoggerFactory
();
context
.
reset
();
PatternLayoutEncoder
encoder
=
new
PatternLayoutEncoder
();
encoder
.
setPattern
(
"g4Proxy-%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
);
encoder
.
setContext
(
context
);
encoder
.
start
();
LogcatAppender
logcatAppender
=
new
LogcatAppender
();
logcatAppender
.
setContext
(
context
);
logcatAppender
.
setEncoder
(
encoder
);
logcatAppender
.
setName
(
"logcat1"
);
logcatAppender
.
start
();
Logger
root
=
(
Logger
)
LoggerFactory
.
getLogger
(
Logger
.
ROOT_LOGGER_NAME
);
root
.
setLevel
(
Level
.
INFO
);
root
.
addAppender
(
logcatAppender
);
}
}
g4proxy-new/src/main/java/com/virjar/g4proxy_new/client/ClientIdleCheckHandler.java
View file @
f130feff
...
...
@@ -25,6 +25,12 @@ public class ClientIdleCheckHandler extends IdleStateHandler {
proxyMessage
.
setType
(
NatMessage
.
TYPE_HEARTBEAT
);
ctx
.
channel
().
writeAndFlush
(
proxyMessage
);
}
else
if
(
IdleStateEvent
.
FIRST_READER_IDLE_STATE_EVENT
==
evt
)
{
//不能在readTimeout的时候,就判定超时。比如在下载大文件的时候,只有数据写。没有写idle发生。也就没有heartbeat的ack。不会产生heartbeat的响应包
log
.
info
(
"first read idle, write a heartbeat message to server"
);
NatMessage
proxyMessage
=
new
NatMessage
();
proxyMessage
.
setType
(
NatMessage
.
TYPE_HEARTBEAT
);
ctx
.
channel
().
writeAndFlush
(
proxyMessage
);
}
else
if
(
IdleStateEvent
.
READER_IDLE_STATE_EVENT
==
evt
)
{
log
.
info
(
"read timeout,close channel"
);
ctx
.
channel
().
close
();
log
.
info
(
"the cmd channel lost,restart client"
);
...
...
g4proxy-new/src/main/java/com/virjar/g4proxy_new/client/NatClientChannelHandler.java
View file @
f130feff
...
...
@@ -30,12 +30,18 @@ public class NatClientChannelHandler extends SimpleChannelInboundHandler<NatMess
case
NatMessage
.
TYPE_DISCONNECT
:
handleDisconnectMessage
(
ctx
,
msg
);
break
;
case
NatMessage
.
TYPE_HEARTBEAT
:
handleHeartbeatMessage
();
break
;
default
:
log
.
warn
(
"Unknown message type:{}"
,
msg
.
getType
());
break
;
}
}
private
void
handleHeartbeatMessage
()
{
log
.
info
(
"receive heartbeat message from nat server"
);
}
private
void
handleDisconnectMessage
(
ChannelHandlerContext
ctx
,
NatMessage
msg
)
{
long
serialNumber
=
msg
.
getSerialNumber
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment