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

时间:2012-09-03 16:03:58

标签: android adb boot init remote-connection

我有一个根深蒂固的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 ...

3 个答案:

答案 0 :(得分:38)

这将使其持久:

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

通过USB 的ADB 可能无法使用。要撤消此设置,请执行以下操作:

setprop persist.adb.tcp.port ""

答案 1 :(得分:1)

您需要在boot.img中解压缩,修改和重新打包initrd。您可以在以下网址找到更多信息:

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

答案 2 :(得分:-1)

为什么不尝试使用BroadcastReceiver行动BOOT_COMPLETED

你可以在你的Manifest中注册一个:

        <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
    }
}