From 6f95f6895f76dd291cb2dc55fca30584e6e43cf2 Mon Sep 17 00:00:00 2001 From: Awin Huang Date: Wed, 15 Jan 2025 10:26:41 +0800 Subject: [PATCH] vault backup: 2025-01-15 10:26:41 --- 20. 專注/Android/ADB tcpip.md | 40 ++++++++++++++++-- ...0250115_100240_WindowsTerminal_1305x87.png | Bin 0 -> 9286 bytes ...0250115_101133_WindowsTerminal_496x107.png | Bin 0 -> 6441 bytes 3 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 attachments/20250115_100240_WindowsTerminal_1305x87.png create mode 100644 attachments/20250115_101133_WindowsTerminal_496x107.png diff --git a/20. 專注/Android/ADB tcpip.md b/20. 專注/Android/ADB tcpip.md index e844d72..10e0dc8 100644 --- a/20. 專注/Android/ADB tcpip.md +++ b/20. 專注/Android/ADB tcpip.md @@ -9,8 +9,40 @@ List of devices attached 0123456789ABCDEF device ``` -## Get IP of Device -Use below function to get IP address of device: +## Enable network of ADB +Use below command to enable network of ADB: ```bash -ifconfig eth0 | grep 'inet addr' | cut -d: -f2 | awk '{print $1}' -``` \ No newline at end of file +adb tcpip 5555 +``` + +## Get IP of Device +We have to get IP of Device, because another PC need this for connection. + +If you connect your device to router with ethernet, pass `eth0` to below command to get IP address of device. +```bash +adb shell "ifconfig eth0 | grep 'inet addr' | cut -d: -f2 | awk '{print \$1}'" +``` + +If you connect your device to router with WIFI, change `eth0` to `wlan0`, like: +```bash +adb shell "ifconfig wlan0 | grep 'inet addr' | cut -d: -f2 | awk '{print \$1}'" +``` + +Above command will return IP address of eth0, like: +![[20250115_100240_WindowsTerminal_1305x87.png]] + +**Remember your IP address.** + +# Setup PC +Now we have to setup our PC that in the same network with our Android device. Please note this PC **doesn't connect to your Android device via USB**. +So we have to enable connection between PC and your Android devicem, and we need IP address of Android device, you had this at step [[ADB tcpip#Get IP of Device|Get IP of Device]]. + +Pass your IP of Android device to below command to enable connection of ADB: +``` +adb connect 192.168.1.108:5555 +``` + +Remember to change `192.168.1.108` to your really IP address. + +Now we can use `adb devices` to check if we can recognize Android device by IP adress: +![[20250115_101133_WindowsTerminal_496x107.png|400]] diff --git a/attachments/20250115_100240_WindowsTerminal_1305x87.png b/attachments/20250115_100240_WindowsTerminal_1305x87.png new file mode 100644 index 0000000000000000000000000000000000000000..5a45d558c4b21dfcbd1ec1c05048c561a1645a0c GIT binary patch literal 9286 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 Moj+N7{L+p80SO7iTL1t6 literal 0 HcmV?d00001 diff --git a/attachments/20250115_101133_WindowsTerminal_496x107.png b/attachments/20250115_101133_WindowsTerminal_496x107.png new file mode 100644 index 0000000000000000000000000000000000000000..88e6169910edff7cd7b0743c96951fa9bab9c219 GIT binary patch literal 6441 zcmb7JcT`hbmk$9RAW9cOsx(VL1*DgN(owJ=5LyJJNE77IOF(=S4PA;-BJvcJnuH=C z1OD)9|cIKEX&k)%Gy*}cY^w!?L-GG64)E^Z#^ zUO~_aTPWZN$52($n4pmn42FlKWq9#e`pp_OKseAHsZ2CbT)>OC_r=?{rz+#~Sw)4n zAL8f~a@c%KUasix32Mi=sWmvp;lchq!nzm9Bu+l9xIlcfO-XFjguP(?6wBBJGkP!K zq8V#tD18LEUjuQ0AnE}HXk=7R@zq{NS$t6^Pc%T^e;~o67;~IUv$1SG_K0K&CLReI z5sqF_qw(GamDUMc;*NvO2V#yBx|q*lt?IPy~` z@D3pz8XJ+Azk^-hhAF&`UB9GI&o%@OU@r6B6?P}wpPd`QdJuMTmp$$0tn63SbR6}$1 zL%%@?;&5V64?GaQ6UIVqn@BwANjf!3D9za27g;S0QkCy!WyQuf@UVu`*alk-yOGZ2pGGM=k1b5wKjY1_IL zDE<{tl%>=wPr_3`8i

m0ToORw?7Ze_g(W?piwaumd)$V~~##v%0=s&(=q>2(c(B zQ#>3O2>c?T7xVt(ih@SZd%AQZB$lT;!y?RejXWRfh%}B( zJOzRnsz9=(-)B6gPsIHv@pilU?VSdGK?jA(8Y6J7eCW-`CigLqHuIoLEH$$u-Zcf^ zB^tMjC==rr;KCF>{R*J6wPy{dSfPAj0aFu_T#jDHO<#j~B9*t8wAddjeG-zxzYK2! zODOuNn>jhE_vGb*8ahp6W*}y=mD87Is1CVYvlw4@vjvP;`E8yCdmS&b|X5JtzhFOXV(K%VAtp~nn__#7USAybO zg*o8I;E1y18xfS3F!DU6X36Jc@_O3$ZCM?fom9K{WvMBqSs)|SzJUk!En!2EVx|X!A)>Q8iMjjqF=b?y>sT8Oy9moR5FUS+p#vFtS)`8=7T`r7qi*p zQ>}|oj`IO)kzxWzoo&+<5$?#Q0(lmW*0+VN^7RY#RRV7rO*e)3r`%Xjrvir$kE0$P zrqpEatv8KbBs>6Ltfm>1r!YAcd6 zoObrUD!RTGI6bUC|2b8;=I!|fx&Gb8bW0Yyt8+1|sT>I~7Q2WWiq$+^m=XmW&Vm3} zrOYCavDn!{bkH8wLBeMHPR*cKv?TwwCazvB0R0U>7K^AcU8MY&CYN=MwE3h(oWRMp zvk$7|CLsEHY ztvUyHp42fGSJi*mU-Cr2JDsGv0ZTXupe^aD!fns}e+=wt;PX%Cq2kG>i=Ld!Zj?^R z9KwXQyaN23?^;>3T= zA;-BtFw=wkTsr%A=2tDge}=)*|8>&86Ak)zTvq1TeZ;bYE9qnC*tomI69z@dTc0i2 zbs4T%#ZcD=kMdinc5T#R=;}@yfGWTp!#Affa7$b5J6F_a}8rz9bI(3d+Hg@w-@Qg;Zaj(o&a()QQBl|iRF zR|3PX{tZyMZ5BI{c;V`I$KM)#1z~n|Tp2GKM?#6t&_)5!p8dlr!_876l>Q*bfh(`c ze{6;yAszLa-rnpYj}rxCu{*e9^bv&bW@S+_Sq}@i6}_NTP)t3?Q7fY*5>T?`Tcp^G zuT+k|tj=PYdUb5uQ&;l!fK%IwtEPvtfn$lOW;*;RFMs!0TkwZz14xDw2EB)@sb}j< zw4>)g`E?yB_xe_?At9GyTHwPK*VON~wF5UV+nd>Y$}8}|cEJ9$&S!FEtVtp3rczAY z%Tx%X!-BSD;LF!Nu4=%E3FY(8!6_#i`2$_rswCI0SmhSRt#;9*Ep!6CN44I6s`fN= zn4%e0_l)k)KDe}8Gh}*5`12j8SDo|I4MgGPUW@>~6s6Nu&305b+;ii!h63FE#gLP8 zP@Z)V!}93-hB@eE*m`c`U-_ep!9nr^ukJeu4rOIhS>2u;X7sBP8V((H5MH#w&&?`U z2fD|uSsHY%GYb51K0wc*WqZ8t&7b^?m=8S!@|SAri&-3TO4p&C@W+=P)BGDCh-fTa$H=f+fBGfKS+ z%%h32W}ryQ=sKgt9iU9&-03BuW;YKcj=VyEmn&p%mUOP@J%nnrEQ?c#a+A5|@+-NK z_pDoHM7gvIt?U~x@J;Y}Yk>cEHautOp>ea`e-ExAhFB(*CEW$W@PGtz^BvR3yBV$P z!6Ec|FGuuS#?~aX;%Gt_Wy-DToz3EADpOJ9>FDG?u9GqQg39UNUU3j!AGcpT;207~ zq+O8wC7e)ysaNi&>{l;2hE3Q~qSVw6++kb}70%A$UMwnAU`U?dwf@y-{A`S(N+B2S zPVIT=PEU*rpG%rO^6F-q_sR~~N?PWT_KjoeQZZvLN;$v$5@)}Rj}upmc;#8Y^n?j^ z7u*0{aIf0Fbj|$vRxgDQ>Y3aqJ)7n&wE0;EQH9-|t5h{r!qvz;Q73$xb=+CCD}- zwW@zuM=I!==W@$bCdg*o!T_9kVTQYBEommZc&*>K!WnNytHSI1yN)63Qvp#CYr-nZ zvg?{q=$&zFnaR3mUmd(2!Bl0E1Ic6lC%qKy8}qDKo7f~SyC6>+Neqx@3%5P{Ieb*Y z98_^xvXFXAZ!X$PFfKs9BDmT}9A0YK>2~#}D^rt=XWLXl4^Yad0o8I~+N)MJ$|nTq zXHrM4JRcmWq4+_@|5JnZEF4++;O%u`m28mh+Eg5-V(;07SNB1%0}1bs;bf&-MT#te z8zq}PjgSv9KH>t|E+|vOEe|<{TXd?V(7ilB&14ZF)UQ06b@Zj!VHQzJ3Y)|=Gp4as z_IH4=O{qP-7DPW;%b~sAFcKVig=N#AabucG|Cr!cnF`t0HNV*m`1pq8$b|$G73vOQ zO6JHmGn1DSwr=m48#Gzz`2G6#&0kP=Ifm)lTGV~(s-L)Fiq0n788J2Vv_3brVn-J6 zA?%Ak>cdW5SkN<6ACWTbQmPPk(k>BLfJGP)WZu3h3X`*27@e~KVQ?!7@BUfaxp>fg zw~9J0I$`?sni3lv8}W9&qJw)?-3VHFW`3}8#*7xfeoc!bZoX=;hG`+9fNGta2HvC> zfo=vor?+Ym9`y62&XDoZF#lA$#j}U@({s#)V%LPXB{38>4Hm`c(Okt;-5GIRyLqU>kc%?hp0oIy< z7;qd3PkW}f3ya;0F8r5TFbGd(EP$0&ijNLD|I0_0Z?~hsh87tq(<#`bNjnHN>>4<- z`-4t$u)5BE-5sfnu?TI5?}tT1A;LZdxb=E=Dqe8LWHY4=IdBHqF#iD1*$@21iqTeE zEKIG;iBRw6{0B8Kr2Y?Z!Hq?O2{3p%f0t}{@#OyjXCSz!HTSWA)xOO?h3(sg8q7|T ziwhn2Jje&s_7@>OuIDf-+D*ih8Xy^kJM36WRSfs*mH9}9F2N;E&FrwiO{^ckWL-F_ z9GLy+JJ;1ig#`0%TPIwu?JshoHmA1+laWEj{Q<%?8C{F?=cy$Jw#5<&QzTMe0saF;KijbJ`d|+ z#MD=pg(Kwnylfe5i9(#JZ3uiE2k1OHzpz7zpRD~sEv|vlle6Fow`q#;3Zi%w>7Cm= zQ%Vvo-rQla49p^wZ*sIOeY0UgfOoyOyRwS7VDZG(p2=x!=cIdKv#$q?_DPTkXACHO z`8HGF)iE6zGjDpQ9VVp2=XO17k@#g$kIN>dG4wN0p_GAT`+~J~vjLbYiq5$UundA1!Q;YuxH zJZY8zpKCWS3~HZa>v`-G)Vm}qdLk}4i&foYStox_%G-2yO3Y!P>_z|X0AEL+3Ykoe8Lf+F zBujWNTRpl~AxU_z`u*&3OW|f=Rtc=hzNy6Ls@L>@ij4I8 zg4Q-typeSj@f;*w%v+5wQgjF4F~Qe#aRhe-6B|!nYgvK2@wRdqQJm#dPM0-mY#B#^ zCOIn4N}DJb`)>3~{=1UbeP#Ohi7M7hN6Fgt;uTcLj|f|+>;MZTSKpu?e-elaPl+QK z*>bEVX~V#+SLyTgg7!>)mNVtAA1bO0)+Osc>_6e*;60raqV=hZ0soW?gk4r?BUaOr zjT;}f*@3?t&S(Ka(Bw)NuFzX~6mfy%Gk95|BU;w#;lnwOjjm}Hv`g+D=ZA4rb6twZ zH1v7b%A!SKiRqGTr{o?Q0=aa?>K$*LQm^Pgb-&(sg$3#E7f&h+PgJtKxM9VukQQ1u z*t6xmI>9-LumY8()P_1{4cvD^b%vlAQV}k-qUILj3V3mf!sh zFwtlaFu_mgb}e1Kj(;-xZNB=zD|;j{q-?O#ifd2wnaF3`Xv1H>#2sY9BcsUrLgY$E zTONmw58Y38q3~Xn630;g-wyaUqgoaCaabWjoSV>bM zp@LDY4)Bv${l4_nXtuUC@jeptWqqOf%vORTT-A|cbq|I}=I~(iS%bI<{dHe1+0OpN zhr1^DODlhTx_8mN$QEH;2qg2!VF^s9`_8d3j8(7FzTghj;#A~5N5dPEL}a6DR+=U9 zjt-t?($FtA?(aVZ?7m-Ic+BOMX~_Ml-`Fa5Pxbjte*C7%(J>QR8BYiywdU_J6c4D1 zB9J)+67f(gw-XhGO1^r|+0!(twEg_xlItc!%(0NkucLy^DKPW=Z@6{V<;kBr59)hG zzDiXzr8U&9BcA1Pg(qf7!LhrXVuj6HLJviD;EZ7fNRk60h_!z13R3d1?Nk#(6^XQ# zSRYYniOCCDB$o{!Qt%f^Tg$&FM9Ikcw7T`}>8S4M3;W#@tIbV##|YlZt1ZQ}l4jW4 zs%svgG^eoOAmq)?xheDz@37{s0CM0EDw6BfzGbjT&YFu{%wc$abZ690VbfK@d6riu z!}@`ME9#;5m+gMbpEUkB%MDHq?Pcc_xjYccqkreR3J` ztdUcbr6i>(GNjh>BNw+k*`QB@RNdk@%b=81P+*8fbP|vmHUPcv z%jaI9IKzyG;Yj1zIs59a6JKJ>$8?y9NorGh{B6U;BBO`RX=A1b(VB5-m76qF?8|JA zA(wdl@S*G9E>?VVD+APAE-WZw9)n%v=lHV!%3li}MI01xLyl zpCmhJ*RTsL2qw|18XF|8uDD9h9w5=tZ z&Iz8%o+B+fWY*a7Wk;1gqk5c2NzHg{26%H!1~A)$-Bf&zR!4)a7YW0EYgQQhpESgKe-BX7$)SW~BCywvH zt5K9Rw`PTfc0m`PqO; z7FV_&H{FZQhh3?6-f?|H;+fNmEd*YK+svGl@|-c5IaBd%k!i)Pl|Ln3&8{i8&*jkj z%x%l?5{&tazq|R!ssBd@=6{D&|NV^MU#*+&ov{^wRp^^KXyJOZEAw~*WNvI_RDJc{ G