Commit eaa21e7d authored by liuyang's avatar liuyang

APK抓包>从频道1开始依次抓取

#BYLSERVER-1693
parent 2d2b000c
...@@ -168,9 +168,8 @@ class Task : IAppBaseCallback { ...@@ -168,9 +168,8 @@ class Task : IAppBaseCallback {
} }
AdbUtil.launchApp("${this.apkInfo.packageName}/${this.apkInfo.launcher}") AdbUtil.launchApp("${this.apkInfo.packageName}/${this.apkInfo.launcher}")
Thread.sleep(2 * 1000L) // 启动立即抓取,避免第一个频道没有抓到
// 启动2s开始抓取,避免第一个频道没有抓到 capture(this.apkInfo.captureDelay, false)
capture(this.apkInfo.launchDelay + this.apkInfo.captureDelay)
Thread.sleep(this.apkInfo.launchDelay * 1000L) Thread.sleep(this.apkInfo.launchDelay * 1000L)
// 启动后按键事件模拟 // 启动后按键事件模拟
...@@ -182,6 +181,7 @@ class Task : IAppBaseCallback { ...@@ -182,6 +181,7 @@ class Task : IAppBaseCallback {
private fun processChannels(index:Int): Boolean { private fun processChannels(index:Int): Boolean {
Log.i(TAG, "processChannels") Log.i(TAG, "processChannels")
step() step()
quitCapture()
for (i in index + 1 until this.apkInfo.channelCount) { for (i in index + 1 until this.apkInfo.channelCount) {
if (this.status == "7") if (this.status == "7")
...@@ -237,7 +237,7 @@ class Task : IAppBaseCallback { ...@@ -237,7 +237,7 @@ class Task : IAppBaseCallback {
} }
// 抓包处理 // 抓包处理
private fun capture(delay: Int) { private fun capture(delay: Int, quit: Boolean = true) {
Log.i(TAG, "capture") Log.i(TAG, "capture")
val file = File(this.capturePath) val file = File(this.capturePath)
if (file.exists()) if (file.exists())
...@@ -245,8 +245,15 @@ class Task : IAppBaseCallback { ...@@ -245,8 +245,15 @@ class Task : IAppBaseCallback {
Thread(Runnable { Thread(Runnable {
proc = AdbUtil.tcpCapture(this.capturePath) proc = AdbUtil.tcpCapture(this.capturePath)
}).start() }).start()
if (quit) {
Log.i(TAG, "capture sleep $delay seconds") Log.i(TAG, "capture sleep $delay seconds")
Thread.sleep(delay * 1000L) Thread.sleep(delay * 1000L)
quitCapture()
}
}
private fun quitCapture() {
proc?.destroy() proc?.destroy()
AdbUtil.killTcpdump() AdbUtil.killTcpdump()
Thread.sleep(2000L) Thread.sleep(2000L)
......
package com.duolebo.blyrobot.util package com.duolebo.blyrobot.util
import android.text.TextUtils
import android.util.Log import android.util.Log
import com.duolebo.blyrobot.data.EmulateKey import com.duolebo.blyrobot.data.EmulateKey
import java.io.BufferedReader import java.io.BufferedReader
...@@ -211,7 +212,7 @@ object AdbUtil { ...@@ -211,7 +212,7 @@ object AdbUtil {
val keyEvents = ArrayList<EmulateKey>() val keyEvents = ArrayList<EmulateKey>()
val keys = keyPath.split(Constants.SLASH) val keys = keyPath.split(Constants.SLASH)
for (stepKey in keys) { for (stepKey in keys) {
var delay = "0" var delay = "1"
var key = stepKey var key = stepKey
if (Constants.VERTICAL_BAR in stepKey) { if (Constants.VERTICAL_BAR in stepKey) {
val params = stepKey.split(Constants.VERTICAL_BAR) val params = stepKey.split(Constants.VERTICAL_BAR)
...@@ -221,12 +222,17 @@ object AdbUtil { ...@@ -221,12 +222,17 @@ object AdbUtil {
if (Constants.ASTERISK in stepKey) { if (Constants.ASTERISK in stepKey) {
val params = stepKey.split(Constants.ASTERISK) val params = stepKey.split(Constants.ASTERISK)
if (params.size > 1 && TextUtils.isDigitsOnly(params[1])) {
for (i in 0..params[1].toInt()) { for (i in 0..params[1].toInt()) {
val keyEvent = EmulateKey() val keyEvent = EmulateKey()
keyEvent.key = params[0] keyEvent.key = params[0]
keyEvent.delay = delay keyEvent.delay = delay
keyEvents.add(keyEvent) keyEvents.add(keyEvent)
} }
}
else {
Log.i(TAG, "multi key event is invalid.")
}
} else { } else {
val keyEvent = EmulateKey() val keyEvent = EmulateKey()
keyEvent.key = key keyEvent.key = key
...@@ -240,7 +246,7 @@ object AdbUtil { ...@@ -240,7 +246,7 @@ object AdbUtil {
Log.i(TAG, "send key: $keyEvent") Log.i(TAG, "send key: $keyEvent")
val cmdKey = "input keyevent ${Constants.KEY_MAP[keyEvent.key]}" val cmdKey = "input keyevent ${Constants.KEY_MAP[keyEvent.key]}"
commands.add(cmdKey) commands.add(cmdKey)
if (keyEvent.key.toInt() > 0) if (keyEvent.delay.toInt() > 0)
commands.add("sleep ${keyEvent.delay}") commands.add("sleep ${keyEvent.delay}")
} }
...@@ -318,6 +324,7 @@ object AdbUtil { ...@@ -318,6 +324,7 @@ object AdbUtil {
} }
fun killTcpdump() { fun killTcpdump() {
try {
val result = exeCmdEcho("killall", true) val result = exeCmdEcho("killall", true)
if (result.status != -1) if (result.status != -1)
...@@ -336,6 +343,9 @@ object AdbUtil { ...@@ -336,6 +343,9 @@ object AdbUtil {
} }
} }
} }
} catch (e: Exception) {
e.printStackTrace()
}
} }
fun isAppActive(packageName: String): Boolean { fun isAppActive(packageName: String): Boolean {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment