问题
I have a rooted HTC Hero, and what I want to do is to enable the adbd to listen to a port at boot time.
I tried some code found here:
setprop service.adb.tcp.port 5555
stop adbd
start adbd
in an Android shell and it works great.
I tried to change the init.rc file. I added the above code in init.rc and I replaced it with the original file, through these commands:
adb push init.rc sdcard
adb shell
adb su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /
adb cp sdcard/init.rc /
The file is replaced successfully, but when I reboot my phone and try to connect through:
adb connect <IP>:5555
the connection is not being established.
Any ideas?
(PS. I don't want to use the remoteADB application and a shell command like
am start -n ...
)
回答1:
This will make it persistent:
setprop persist.adb.tcp.port 5555
ADB over USB might not be available after reboot. To undo this setting, do:
setprop persist.adb.tcp.port ""
回答2:
You need to unpack, modify, and repack the initrd inside the boot.img. You can find more on this at:
https://groups.google.com/forum/?fromgroups=#!topic/android-platform/w37x_WCrhMM
回答3:
Why don't you try using a BroadcastReceiver
of the action BOOT_COMPLETED
?
You can register one in you 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>
and in the class you can do whatever you want when boot is completed:
import java.util.*;
import android.content.*;
public class BootCompleted extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
// Do the actions you want
}
}
来源:https://stackoverflow.com/questions/12251101/how-to-enable-adbd-to-listen-to-a-port-at-boot-time-in-android