How to enable adbd to listen to a port at boot time in Android?
Asked Answered
T

4

13

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

Traylor answered 3/9, 2012 at 16:3 Comment(2)
This will surely help: #9768603Scoundrelly
This is for enabling ADB connection without USB at all - android - Adb over network without previous USB pairing - Stack OverflowTrimetric
S
67

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 ""
Squarerigger answered 11/12, 2015 at 8:54 Comment(10)
You have no idea how much this find has saved our bacon - so simple & works - why has this not gotten more up-votes? Cheers.Prate
Where are these properties stored? Compared to build.prop?Iranian
On my Sony Xperia Z1 compact with stock ROM Android 5.0.2 the USB keeps working even after reboot.Iolenta
If you are using adb, the command is adb shell setprop persist.adb.tcp.port 5555.Kiethkiev
You sir are awesome sauce :) I know this is old but still very useful!Ostmark
I needed a nuance - First adb shell then su then setprop persist.adb.tcp.port 5555Howarth
useless for me :setprop persist.adb.tcp.port 5555; setprop persist.sys.start.adb 1 \n\nJarman
@Iranian persistent properties are stored in /data/property/persistent_propertiesTubing
Great! Will it work without root?Lintwhite
@Lintwhite no, to run setprop root is requiredTrimetric
B
1

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

Beuthen answered 22/3, 2013 at 6:57 Comment(0)
T
0

Root is required.

To set this property by Termux terminal:

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

To restart adb (for making changed port updated in it) by Termux:

su -c "stop adbd && start adbd"

To check property (root is not needed):

getprop persist.adb.tcp.port
getprop service.adb.tcp.port

To unset property:

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

USB ADB is also working even if property persist.adb.tcp.port is set to 5555. Checked on Android 9, MIUI 11 64 bit.

(query for search engines: how to change android system property in termux)

Trimetric answered 24/3 at 18:43 Comment(0)
C
-1

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
    }
}
Chelonian answered 29/7, 2013 at 15:40 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.