12

我有一个根深蒂固的 HTC Hero,我想做的是让 adbd 在启动时监听端口。

我尝试了一些在这里找到的代码:

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

4

3 回答 3

61

这将使其持久化:

setprop persist.adb.tcp.port 5555

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

setprop persist.adb.tcp.port ""
于 2015-12-11T08:54:05.367 回答
1

您需要对 boot.img 中的 initrd 进行解包、修改和重新打包。您可以在以下位置找到更多信息:

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

于 2013-03-22T06:57:53.290 回答
-1

你为什么不尝试使用 a BroadcastReceiverof the action 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
    }
}
于 2013-07-29T15:40:21.703 回答