我已经植根了三星GALAXY Note 4设备。
此后,我从应用商店中安装了一个shell应用程序,并键入“ su”,然后出现一个Toast声明该shell保证了root访问权限。
我输入了“ setprop service.adb.tcp.port 5555”,该命令失败。 因此,我键入了“ su-c'setprop service.adb.tcp.port 5555'”,但由于我仍然无法进行无线连接,因此它没有错误,但也没有任何作用。
我曾尝试运行未定义的命令,例如“ su hdhdhd”,但未给出错误!!!
但是当通过USB连接电话时从我的PC打开adb shell时,我可以成功运行su命令!
为什么在电话外壳上无法成功通过PC adb外壳执行su命令???? !!!!!!
即使在第一次使用时,我也想通过adb将手机与PC连接起来,而根本不使用USB ...
预先感谢...
答案 0 :(得分:0)
我通过编写自己的自己的android应用程序(已运行包含所需命令的shell脚本)解决了该问题。
问题在于,并不是所有在Play商店中可用的终端模拟器都能正常运行,尤其是具有root特权的人。
try {
String line;
Process process = Runtime.getRuntime().exec("su");
OutputStream stdin = process.getOutputStream();
InputStream stderr = process.getErrorStream();
InputStream stdout = process.getInputStream();
stdin.write(("setprop service.adb.tcp.port 5555\n").getBytes());
stdin.write(("stop adbd\n").getBytes());
stdin.write(("start adbd\n").getBytes());
stdin.write("exit\n".getBytes());
stdin.flush();
stdin.close();
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while ((line = br.readLine()) != null) {
Log.d("[Output]", line);
}
br.close();
br =
new BufferedReader(new InputStreamReader(stderr));
while ((line = br.readLine()) != null) {
Log.e("Error", line);
}
br.close();
process.waitFor();
process.destroy();
} catch (Exception exception) {}
我希望此Shell脚本在系统启动时自动运行。 Play商店中有几个为此目的的应用程序,但是它们正在发生故障!因此,我已经通过实现BroadcastReceiver更新了我的应用程序,使其能够在系统启动时自动运行。
package com.example.liveandroid;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class ADBD extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
Intent i = new Intent(context, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
AndroidManifest配置:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.liveandroid">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<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"
tools:ignore="GoogleAppIndexingWarning">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".ADBD">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
</application>
</manifest>