我有一个root过的HTC Hero,我想要做的是启用adbd 在启动时监听端口。
我尝试了一些在here找到的代码:
setprop service.adb.tcp.port 5555
stop adbd
start adbd
在 Android shell 中,效果很好。
我尝试更改 init.rc 文件。我在init.rc中添加了上面的代码 我通过以下命令将其替换为原始文件:
adb push init.rc sdcard
adb shell
adb su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /
adb cp sdcard/init.rc /
文件替换成功,但是当我重新启动手机并尝试连接时 通过:
adb connect <IP>:5555
未建立连接。
有什么想法吗?
(PS。我不想使用 remoteADB 应用程序和 shell 命令,例如
am start -n ...
)
这将使其持久:
setprop persist.adb.tcp.port 5555
重启后,ADB over USB 可能不可用。要撤消此设置,请执行以下操作:
setprop persist.adb.tcp.port ""
您需要解压、修改并重新打包 boot.img 中的 initrd。您可以在以下位置找到更多相关信息:
https://groups.google.com/forum/?fromgroups=#!topic/android-platform/w37x_WCrhMM
要通过 Termux 终端设置此属性:
su -c "setprop persist.adb.tcp.port 5555"
要通过 Termux 重新启动
adb
(用于更新更改后的端口):
su -c "stop adbd && start adbd"
需要root。
为什么不尝试使用动作
BroadcastReceiver
的 BOOT_COMPLETED
?
您可以在清单中注册一个:
<receiver
android:name="com.myapp.BootCompleted"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
在类中,启动完成后您可以做任何您想做的事情:
import java.util.*;
import android.content.*;
public class BootCompleted extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
// Do the actions you want
}
}