簡體   English   中英

如何在 Android 啟動時啟用 adbd 偵聽端口?

[英]How to enable adbd to listen to a port at boot time in Android?

我有一個 root 的 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 ...

這將使其持久化:

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

如果您的手機具有root訪問權限,則只需將此行添加到build.prop

persist.adb.tcp.port=5555

你為什么不嘗試使用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
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM