如何在Android中启用adbd在启动时监听端口?

问题描述 投票:0回答:4

我有一个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 ...
)

android adb boot init remote-connection
4个回答
64
投票

这将使其持久:

setprop persist.adb.tcp.port 5555
重启后,

ADB over USB 可能不可用。要撤消此设置,请执行以下操作:

setprop persist.adb.tcp.port ""

1
投票

您需要解压、修改并重新打包 boot.img 中的 initrd。您可以在以下位置找到更多相关信息:

https://groups.google.com/forum/?fromgroups=#!topic/android-platform/w37x_WCrhMM


0
投票

要通过 Termux 终端设置此属性:

su -c "setprop persist.adb.tcp.port 5555"

要通过 Termux 重新启动

adb
(用于更新更改后的端口):

su -c "stop adbd && start adbd"

需要root。


-1
投票

为什么不尝试使用动作

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
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.