lookingFor 2020-05-30
一、网络adb
1.1、device\rockchip\common\init.rk30board.rc
# for Internet adb
on property:netadb.status=true
setprop service.adb.tcp.port 5555
restart adbd
# for Internet adb
on property:netadb.status=false
setprop service.adb.tcp.port 0
restart adbd1.2、连接
adb connect 192.168.1.1:5555 adb disconnect 192.168.1.1切回usb模式 adb usb
三、仙逆
3.1、AndroidMainfest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gatsby.zebra"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-sdk
android:minSdkVersion="22"
android:targetSdkVersion="22" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".ZebraReceiver">
<intent-filter>
<action android:name="com.gatsby.action.MCU_WIFI_ADB_Y"/>
<action android:name="com.gatsby.action.MCU_WIFI_ADB_N"/>
</intent-filter>
</receiver>
</application>
</manifest>3.2、activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context="com.gatsby.zebra.MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:shadowColor="#F9F900"
android:shadowDx="10.0"
android:shadowDy="10.0"
android:shadowRadius="3.0"
android:text="EthernetStat: "
android:textColor="#4A4AFF"
android:textSize="60sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:shadowColor="#F9F900"
android:shadowDx="10.0"
android:shadowDy="10.0"
android:shadowRadius="3.0"
android:text="EthernetIP: "
android:textColor="#4A4AFF"
android:textSize="60sp" />
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:background="#40BBFA"
android:text="Start Net ADB"
android:textSize="40sp" />
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:background="#BF4507"
android:text="Stop Net ADB"
android:textSize="40sp" />
</LinearLayout>3.3、MainActivity.java
package com.gatsby.zebra;
import android.app.Activity;
import android.content.Intent;
import com.android.xhapimanager.XHApiManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
private String TAG = "Gatsby";
XHApiManager apimanager;
private TextView state, ip;
private Button btn1, btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
apimanager = new XHApiManager();
state = (TextView) findViewById(R.id.textView1);
ip = (TextView) findViewById(R.id.textView2);
btn1 = (Button) findViewById(R.id.btn1);
btn2 = (Button) findViewById(R.id.btn2);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
state.setText("EthernetStat: " + apimanager.XHEthernetState() + "");
ip.setText("EthernetIP: " + apimanager.XHEthernetGetIP());
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btn1:
Intent intentY = new Intent();
intentY.setAction("com.gatsby.action.MCU_WIFI_ADB_Y");
sendBroadcast(intentY);
break;
case R.id.btn2:
Intent intentN = new Intent();
intentN.setAction("com.gatsby.action.MCU_WIFI_ADB_N");
sendBroadcast(intentN);
break;
}
}
}3.4、ZebraReceiver.java
package com.gatsby.zebra;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class ZebraReceiver extends BroadcastReceiver {
private final String MCU_WIFI_ADB_Y = "com.gatsby.action.MCU_WIFI_ADB_Y";
private final String MCU_WIFI_ADB_N = "com.gatsby.action.MCU_WIFI_ADB_N";
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if (MCU_WIFI_ADB_Y.equals(intent.getAction())) {
Log.e("gatsby", "MCU_WIFI_ADB_Y ");
RootCommand("stop adbd");
RootCommand("setprop service.adb.tcp.port 5555");
RootCommand("start adbd");
} else if (MCU_WIFI_ADB_N.equals(intent.getAction())) {
Log.e("gatsby", "MCU_WIFI_ADB_N ");
RootCommand("stop adbd");
RootCommand("setprop service.adb.tcp.port 0");
RootCommand("start adbd");
}
}
private void RootCommand(String cmd) {
Process process = null;
DataOutputStream os = null;
DataInputStream is = null;
try {
process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(cmd + "\n");
os.writeBytes("exit\n");
os.flush();
int aa = process.waitFor();
is = new DataInputStream(process.getInputStream());
byte[] buffer = new byte[is.available()];
is.read(buffer);
String out = new String(buffer);
// Log.d(TAG, out + aa);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (os != null) {
os.close();
}
if (is != null) {
is.close();
}
process.destroy();
} catch (Exception e) {
}
}
}
}
adb shell cd system/app rm *.apk21. 获取管理员权限: adb root22. 启动Activity: adb shell am start -n 包名/包名+类名。
2、在设置好端口后就可输入命令连接:adb connect 192.168.2.36:5555,后面的:5555可以不用输入,例如我设置的:6666端口,则通过如下指令连接:。映像名称 PID 会话名