From 4e26bfa10ba082d3e3a84d99972c42497fd9de89 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 24 Jul 2024 17:10:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96foreground=20service=E7=9A=84?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/libs/common-release.aar | Bin 50252 -> 54851 bytes .../com/xypower/frpandroid/MainActivity.java | 84 ++++++++++++++---- .../com/xypower/frpandroid/ShellService.java | 53 +++++++---- 3 files changed, 103 insertions(+), 34 deletions(-) diff --git a/app/libs/common-release.aar b/app/libs/common-release.aar index 2c1963bcd9cb1854f250c867a1ac373a9f1af1db..e48c2a4be84efc3a6f254a07ffc5bb8a03952bb8 100644 GIT binary patch delta 37833 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 delta 33181 zcmV(+K;6H?tOLx51F#AK3c0E?)AYaq05Z+96ale7e`9p*mafspYTLGLoA+wlwr#Jr zZQHhO+qP}3KF`UQo%8N}zMZ_u^=JH?vogl4N{yKRB^F;$;0U<`8+a~t8apK7_)u)=k>IL#Y;+ix*r~DuO`o2Ifhd}FPJPu3eO+U-0xqj;kpcKUVasKE5*cD2bbFw1UZ&d&CVCJrtpPR{>_Sk-De)~Ks!e`~rs8wC#itQ$v$Ll8$@ zty9Q{{MqE|nAYk-{zQ*wBr)#bT`_gCWUgyix5{L&T4W@!+E^r_Qz4v7RhKb{Dy&*m zr6^a(Z-z>$=u#6=KNBeqi99Y~kpB9o5k-sV#RsWG6bfmsrRRT7Aom^phXVo%H~VKN+U8cH(7 zd1%jb=5i9(%ws`rOvoQDPHN8EB$`P~!NPXQTC(^Kj>>Tb59hDs0nyox_qc9Amoz`I zHXo>mb8@XSD~#xax?$j`)~}pde}nSh=o(+jo=aaus!-9AE2U+rJ|#gk0#V@xwWc4$ z)QCE#8m*K5_=HRxJ=$n%)+eW>^BsyaK&ykJAz!aU88@YmQp}y$Pa4ts!@*iC=CRe?p%rMK6*b ziQ%FZn|j5D5`*5!T2t&Op;TA2hXdVHzNghRjI64etDjVosD8jTf#U3FnxgS`Q`d-N}`7L{1Rec;xF>14qk6j51dWrs zY$L_d`BWPJ8VlVer_rV{ksd8bX2;~Fq%IAEj;32qJ=`QaX;Gz@^opxfafzr;b@IaW zenaH0>My#b-43f=f5Ec=!-d}$sv)GyiWD#e%J|Q{u>iN1`a?6jv9$NNX9pAgzo=o{R$~NsSQ>i&86y5Vp z-4Z9MY@W#4q;qY>Q4(vN5dhdWGe0EF55X7=*;sj9FD^48to0w-vlSt9XOlRx>>qJI zbi7rCSemv8`t^|4J1K8L54_yH)+E0^y*srDc+ahZf3E1+d$8lwwn#5?l;r~PC8d@K z8$-a3+}J}~@TOvfj$tfjkZsWhCyuM(-(Q=aGkv-0`>500_*qYpEIy zYU*Bge~lkC2NvS*sGr|JB-@dCgj4Paj0Zk%XfG@mfp2W^OfN{{0#P`e(%>-%a+qWY zNX!nfxeleh_f|LPa`u^RKZG}@L*D^yZegEf4nJaBokQJ#tk1P_`EVNImn+(gdufmxMJ#}_J5>r zP)fsi#I~GV=#gH@4tfF-+qK@^8s3R5-8X<8yI>Z1KkLeMDp@!6(!ktL4x|~TQzBT_5z+#I zf7hjktc-81uF#te_zXC0#aaFWOt!y%67<&n}h7vYt4 zFFpF?lS1iWnE|t?*jIq4rU=KTSMm@~f4|rntFp^))a>4Vc7KzgvJGE2Hf5XHgLo6` zVncv#JxL@WRiQDW#{AHT=B%e4R_$m|n**O*kMDhRL}!fahr;oG1?-OYRx8QPD#Ps* z_j9xM37R_e}6Jv zW$^#n%#*M+aTYQ*b~JJNpJv8n4G}E1e!>!69rr1(}A%I7&!Q!7jWR zZcdHn*D*5J`k=Y4cGQr6Vw`>Z0Lqn*3BKA47UEhkV@shFJ9EBDyPEj+c)j*vd0@et z99{bb zV&f*{*}tdQY`D(oqzj$+dqJMrPBpneN2HUCJCn6RW&3Z$C6quI+Jo5Q=xkszv1z5( zt0B3WABbIp{0hrgz2$|gf1bC$Ln9`V&KbJB+z{^o@y0xnzR(cy4U9V>aR3<-zjN3b z>og;{=vE()2=8@nh6fi?*1D&F7~;mpR1ZbgR)n?bdHh%AVKmgj{L_6{7$rXQuZ6$A z(*hnP?^Iad+%L@?X`OLXVoqWhxB-|87QNHt48zpGjyew#z*NM+e}g|_rN3JL=D#nM zJgU~*cAa2Z+Qk-_JO^YX!};ouQ8BZt$xGdP&vO>7S7*nqC_6e3+HE(t_-)ESp^n0>CPH-_O1NYx)Gl!GDvs=`DtyoZRTF3>q&)dZ% z(R|KKG%_d+meD_He~Q1(&z2s8)bY2|&oy@d>t=^Sv`?;5C(4T@1wyDX=;QB_wPsmC z;~Y#zX~Qke-G}rJex%VZRYfXMr6DTA^k48Q3v-&Lhdtolj~h0@heqH)wW}c6u}Z$k z2f>NhHK(LsLh6-05Lr17IpC-~$b8|ztBP10_y*PmnT7gwe+uBl!)T0BOxYwotQ}`o zPZayJxOkvmAOK^l(#c^r|A#;K6?R&0?=Bpj{auq5btIL1B#n6(}xghYw>K zBOVd!uOSX0f0_d^Bun2VGYhMc+LbsGjB5YCtu3pxxZnj;m zvFhBcj_sU%SwFQ{9kqS={_A%lCrn=Lku&u^<0f$0wd*$XbMlkT36_WbbJE}3rZ(Ej zH#Xq&;M5xf!E1jYgvZlx9|ysWzj7Z2fzMlU$bSpY{5a`YHs$UvY z%1b#w&$LAqGq!#$#N>LucG&NZ_3Fu}Fyi;5pWyCfm@EHzd}{HYKMjmfvM2P;MJaHE z`;hl5lx!hUn2$t&r}16~!B(jCi*f3355j(U|f3ZTLsw|$i5}}jGu)v!V7LKixzx!oa z|6XkaGnfF#DMpG>9nV^*niB`RMeGE_(GspV=ETmIpFd#UEMQ7FiyAJtH>PYOTtJ3f z_?9=Rtyb@JrtEchpAiw$q>ZyS3n6Y=A+}{^n4hP{Im1cuvmsqcKN1%4e_o=5M3A+E ze+3K3ZyN~eFPgzvAg*n1Y-U4609(8mZu#gkK)yI3pMuL?#kyfs@gaHPCPUs1G0rpD zP7s{p^}%B}cjt0xd1NPRFE?VzzP|8)o-v(hpP@}J)1>Fw7?)``XJnW-9Xa%uk>W`d z!KhV|vv&D~MTK+*tr0(B64vCYdrrMRe@6)#P0*5m%Ek7rZcaP7M{y_-emQW4C_r<# zUu3-|%CoS5q&Px-6$J(=!Lk8&Z%&IUXRDZ|lE5@FrfeBn7eZPvTo7&nZR?l`_Tp{Ye5RuVNkAx1nucTS3Llus|5hgkzcAvP7l-%6vB3f1{njatF1;exuqkB*3hu6g@Yq%9zim?R;t}%hpG$ zO}E^```YU3d<*{SGTZa{QXGW<_YFpX`@$x`dZYLfmo)uF4fn;u&wi)%6)B&K`KIPg zEwGC7hUYsQ@S)`vF8udB3~!_%#&%7D)-D#np}v~Tq2zZ^d843JAgh*spMcxVVn$JTp3I}g zT>#bIZA8l&zy)_Iv53~j(6zCso_Y3Y!tmU z8u_~iz>#oG^iQ%a;s1^zCWDVMr?nVV%|E*B)dt_J(Y9k@(V-{7`JiL~RRd5ikl#WE zG`w`3rOPbNJ1KdTUKXa|aBIf7oBK3L?TGk6I8ec82dsNbOyyi( zJPYAb#0S4qk=>p1++WW%W-H%WX z0NyZji;i;dNzP~AkU=RG@smrTIc1eGDr+?yRl>t9Lo%vQ67))K<>7GcRHvzv5&+=^ zB%G!(x%+a=6_P48F*+CU&FLSn<#-oJFBhSE2&VZHq8^C9)Z32>&%wx zTT`0L{n764i+xra@2fgLJN>jMy@~kUG%p8nPI=vF?gw$rvFHnPeOvPF)3ht}2{8Y` zymnjge?_={T|6PYMp*m{X{mznSBM+ji6GYVC?7rYJ(&-Em#{ac)S04l3|UfpYn#=j zuOucxGXm##c8kaD#!@N!b9;F!Ed7mA#OSt!QtF0sa=9Bx`8#{a0GRDoQN)t1+ByL1?B$GfX0c z`&LJcmh;i2{e`fXGbZ=-{x=Ai3wMNeB~a@YA2Yl=c&jj+ zlG}H1|2A!iX=SpR&)87AdRC)m`}Po<1+(=*;}m&KefTQI(V=n6?s=KRvk@}StC&mj ze?kU>ZH0r$^(fdef9c?)xQoPVAHk#-lLyqNVt|hYE`{Euc;|6~&6R27gTf9YW$#YP zY)ctbk{%Z&L;Z2$7q{4sP<*HllU7ESZ^r>9LkSx1AE3;bNJ90|l9k};wTuh_!7%=C zpP*befr;i?ku6+;KBE(NT!ur^W59hEe-}q4f~Uq8p>!jpkj$Q#{1FQJa1=*+9wiwe zHDtKufB`*leUQf1SV%L-^-&PlrM{}w{DAv)(W*mB&M9K4ECyGrk{QdpR(WIgf?cBT zpA8;FW8Lbh4!q9t#@H{=B`(oyGYNv?D^3#z#TVvN3MwA4^-60uGenl!ht9ake=o^% zy5H`qb!02VLuf}Rpo#_9WaxKnC&tNzBeV-$c;yR=m~7KL$psByeCLV=L#j;@<#j|Y zEZ9=PyM~Ia@Qt(^2C(*#RSjuHB-X_2k-rFVhW-3ibE$(zlz~|{2xkE=@-(phuRw?9 zr%>Blp)OQOa-;x?TB&;~=3=Voe+Pc;j-mj}4(ZJ74rT@nRt>?RN-L^fsMa(mn8epPnz$kr4Cs1)wL|d@JJTk*Bx|#we`?-Ko30P` zg+p>(oz}%$Q}Nw_x6Sl^Rb7?MHozvDPsX^@T&HQlm{6{TZs_)o2R9WeRCCta zekx738)Cc$xvOd)OCOmAf5fy>PQgOyETDB7Rrg-;0RxGzJpPPn4_g^aG-errBuw+S z1Fb%Pz!^fdEhjF`H)VZJeerX0kcl2-N;gnAM_uOn|WqeUaVd*+=(}kk2g~4flK$m**xNh z9=iv+D&MKlgr_xH-rooa3V#`Mtz-8bKj;T#O`9VlUXChAuIkka%?I z;E^d}nJW3lNwFDZ665u|)exq)3Z~~-FEe#A zG&B9mq7s&T-kws;iP?ekGb#pB*-}ZJEdR|@-e#>dZ)HwP=i^!W$4)#p{Mt|uI(J09 zw=CV+rmyAhf3k}4`;)tD2kpvvx)Yfl-0KxxZ3QEDC)fNrD|t(IxP5*)ei^z@j#3Q0 zQ&1stV&vdFbkavM=}L$9tq12eM~={{Z-mb2qobj0@y-e^{n|cp}=(ktYi(okO?XV})%{ z4gOb+BSoFnj(jf9-)L)+jjFDP0ZUbiQ|nre-r6Op%h$$qVsCQ{h5#Ppn9yV?@#4or zY4Ki5=64Z2Hh_mH-&OyphrGZZ+yjU}mFGLx@~GAk*~=tK)q<}l|8V6eYvlvr>R5oN zNAK9{f0WJe#zmZGQj%ws+bfanUI}+(R$a($ag(R%i;HdN_=>OK*~b^e=g-eb?VZ3? z19Y#dtheaXm-zdg7XP7KxubVQP2X)2!Ox6bhQJ-mN$dsATb9O8sb=7hBCs!KabCHrE?pB~1{nr50Ku$sNn(e=qXp_~t@sOO)pZ=?m8#Klr12rTxqk zh)L4sKO8w-3G@n&YeFr8wpmsh)sY?|+BG%%->bj#Qtub7c%FGpo9Rq}zmnbRV>*+% zCY`33+k-DVSB|JE9WlRZztR*dKBST^+9qCm$EaxEK)7U$VuXcew9%1Sx;DL)wjcjv zf4>N8`BPHKKWGQ&zjkJ&?TieZE$nRn-$MFdX4znADd+)4)U49w6>4?4ya21fJvdPz zdF?QWFs7v>*7%aYH75h0?vzZ!(LB3{(_Q}Q9^C|TKuS#_K}4EC?pCwGaWKVX`K=8B zsS_DGV*9VIbhe6&HI5jj&*7SeSEr0+Xi!2(Nj{N_;)aamf1jkF z6!P!>=EYy>DUTz%3v@5GO`Y`P(e{M}2Y-fup96xF!(jqMBuM-@9nO%3@P5fg#tRw(Gh5D~&ABqarHAi$6VvX6$ICA! zX{2U&N-CYSU95c;FT3niz*`ffp^GfU8d)&lyyj_PuBOppJFmD^HEKnzf8a_a+QW}d zn)-48f?%%bK7~&&RrRRXrHl1khpS!URr}Wa2@dOXG)>P1x0){p#x?!t?jO$6^lDR# zR|%KeEfbE9>D9VP8!&BPqA?-uSDoO|HR#s;J*OlsN-fec?ar-ZVk6V6^%QgrKs0Gc zm=m^@@9KhxTKH&dKbZQ!f6Zr0TL~T;368}C+WfRmi*e%O{St7c_Tv3k*q-$O5rLQc zwToSEWxt<`^!I~n8V>dyoo^eP?!WsOZZ)+bB>`C>jbkvdwqUl}otnK57T$0-{$Bp`vNO(_ zs)qkx8^)v^%4F$T99*1Zi|d@vRj>Id_GG-B7fOPYX_TC|-ku~grATZCXHDbsMrrt_ zvQ6~ltk2M%VYCKS4>~TkiY>eYIzTSPT4|((a=Nuzqy?~vgeDr!r#qi(Kvx&tCQ{y5>=gQm*A8QMQ9Wj33 zkp+x9_Zp}`+%16oPN{Dd73X9j)E%pm}R1rV=+fzCC>Yi+mll|cn}Y_!f|cN7Luw(e}JV^k8-@$9p1%Pn*FW5 zE%5LSZ}BbA?jToag~R|my6O?LkHw$a<7!ktPB4cGHeTySRET)HvI3e2A}-q1i5Qvo z8EtXiR^Lp?fld7lM&j%Hk7T)cmojRs+Wq0;HraMJV7{JkffI8c&x9b-QmCmWIF5Wi zPeQ&?#D8-if2h`|l^4izuK)HfQQC-<^MJH>*obpGrvu^NHK5QT$o=CVlmZL{#Q(q0 z06E)#K@oEUTQie?SAyUeCb>aI#Ngd#vi$rxRYU!N;C!9Cfj>*plE2YXxJBzShoEb; zafac8dq?I7<_LoAE7%E1gCGQUyC2=`9^dQ1?W2XFe+n@vf)<56>9cw{Tus`hgVa_K zX8_u1T}{+xo~y=QZp^-Qz zTIt%8bW9R9Dy9#z7Fc&)Z-Htb6{bUHD7MU<#&)+1u4Gc^JCg+U7vq!fwaVID4AHbu zW`0`Tf9X)%%L82Jkb$>jkEOv=y!!{a-AMj(!af^#!Z>(@XZ^AyL;V)}_FirdxU53o z6haIazW<@D`GQe$vrs@l`e^@kN!9ii))AqN(q5~@i z$PkIQlnb^{H4v4+;7J8y(N0qq#-}E+TO=$9f97jtlprR=**ZHQgH*$&kva#mZ@;q3 zyb3O|+4wnmdhVJxt)(!@TsnE1opihPer{iPmty?*?0W!N-Panj?(+lV*bBr$XuH<} z;lMw*=fZS@WVy$U5@Eo@P>y`+a1I<&#v-)c2>};#npYCSzPu2%JPpELkbs1TYQIs& ze};l79~epV4jiVz#6olWk7~PT`SU3R$Z(Fc<{aHa0Y~0TuzyjJ^G_eLfY|nbOJ^A# zG)jBNgwL|vgOQ87^OEgZ@RI10$+FyAL(S~bqUasnli^eO8;5-AbG-MSu3FW=I4 zpncuJgtcPYowL`*Npd0R9%WrlRXAr)I%_EJ%Y@`p1@gIW3QOcdQWc|RS)(skBoNU= zPFf19p+eGI%6O1b7xA2di>ScF;aao2bakxzYz~{s=PfI91Te4AThPNCpfZoKq&^DM(m{Q)sG`VD2;avP;odl^+G|KQ^Am%`3NNf)dF3+22XG z$A~Dfju?a_jHOK!q=vv!ZSB$z)8!m%YO9WW|7M33yO!Eo;}7mHPcu@+NlXEog3xd~ zcO-}u5c`-ZpKr1C`9?DoCoU<|f02yJ+G}y7%&$eyNLgZxZYx-?a2R&65e!db!`Whh z``tq+^e!AC`(&L9MrfZz1ZH> z0$9oe1}wlPM%0;0=v|$|<(HNwG-eYjREfG|??jMdyeprC!gD?40xQ5Fehyxw*c)o{4ACLKI;7`Y)7Sa8j2_r)UC9H-)RbH4+56VRZf9$ z)4qOIlue~{bMqY(e}|y4w~=qazGHir)Ai<{EAd>5Dg?@_ zD@|Q<3;TjVnUnXPZOfXgcilO7ycBxN=9aRd4m(|&Jll)L&ZHKEZF6{>i9hWyGnrlM znpRjoYSI^}f1Oj8V=Luu$GnoL;(VmL$w}vFwiAc(y9Gl7IcueGiq7P&X10ac#55gO zi3bjPAys;j!(^JwEM0Q&uc1e0JJ%l9oAydy%tVFLZs0(h zI+4e(e@;?TdA1M571m#nmBz=m>tAq4`T)vK>8Tnx)T`46PO$+-hBF;hMXuPNw@Yb_ z8{aYCXldal^o7`Q@(&@H4>FoMso-~#WLbqtk3pud0eq zZ9H64jIWh7TszJyf3;ku%@(e?La=n9bkYuXLPnLV#N;=P>hMdxo_oGVp>B0{JyT72 zf3sgEX9f&{Q0+w@O^P?PP|aGJtXNXrh{m38+jf!J1ZhE2XtR3t9kzjl+K^rzX-qwE z&ICN>3|<{lzIL3h&E!*q#o7$fv2u6cc$_l+U=~kz_jwa-vlJaj8yJw>?lXuyaq@n7 z&{7XzDeDQXW1_#>7pgm=FP{vEMIy|Le?m)Lx3{q=8VY%P81g0>DvNojiz-wU)-9p9 z5ir?_GbF17LF+Sk%!g9G?Aub7jN**rJPbdib$6rLvA~=F?a11(KiVLi^FUVO-To29 zzJA(?WYoB3uk7z<=#G)ZM^c(VL#^vx_q=8fgr+5>pf{p#x5q+zvi)d?BDp>De^aIB za*~mBi(e{tMM;AL#fQ}g*5OR!;)&p`Qu`Q-ZUReY#X8<#+FD?VINt1fLAC5^LA6XT zGa8r_<;zsx=gV$x9+E!pCcP~*77z?}h+Fs}JUL`^nMI-wmW_SnJ%fMboZyq)^r)gAAgki?fd}f+EGhgjK18zmp(t`H)Q2QKlw3*>h15VI8B-x* zxGJ&2{y?Wgte9a>xmdM5e>iUAX!=VQx+)SHE6v@jd~zLf>mohCFQ_g&CW9wy_#}Q& z`s?K2kQ09PKgXjjr1cVr{;9Q_!GM4W|L+;0j40dxmkdTL>nI^BVEV$-cD7X!{4p<1 zS;xo|SKWZH5K~o@nl@hN)TOg8pj$IZDc&oo^p)V)-jFVomHqq2fA*6_$K+O{PuhXp zl=GHr)?@e7W5xsF>+RbHqEF>WIfxN$s3{`ycX?Y77E@;xaTE=74Rx9d(vUXdDyp`c zy-08fSG=3jo(0pEBI7LKE;HStj{e;!3JvT6U*{Oshs)xD+(k04TMo`UGZE4@J?1gm zAk%OMoaBvF;|OB~f5w$$#eCJqZF^#Y$8d{c`|vtOjfO0WQ!(eHJ%3Fv(+*a7gF&+5 zWQ~z#vGW1r5aJkzj%-y=Gb|`c@>);TXEaD{M~O|i=wii+jzKky)NO+m>dr}&<>rOF zH{GI&EH!pb|D0NJbLS8a)*^EjIo0Vo4K63_C<2=4g=za(e|A%V0=Ub14G-AgK2%}N z&piyW@DRuXXV4%j^*MVSH`J}=xPCsk$hO*jT5`++9r!Uu@1Qb5AHi3rntsMRj#G=j za13)UK|jJ8lgDHVcZgEh4emwzOwJ)FfY(Tap~~8O;ccdEQ|eJGw!$HdY2;cYud<=- zDitTVO2N=EjhFwvQpS02YzT|wf-y?)giL)s z^8=A6@pVuW*!i+%WX32XR4;p6ij85mi5G<^F>kFqe+mvl8^Sy}TOr-m#7kX`v?kOy zz6D4Nm;l`}R)lznX%x)TZ(U@}e#&Lha7S2*?h8!WdHS(#v-5Oe?SVegO~Gax!Ud)| z1v9#5{wD(Y*f`guIU!iY4F$E=C5V@DfPF|E-*YM5bEDUVo&}lGlr2eH#uil9j%aMo zl*~2lf7@wM8tV(xq7u{jgtk6&f#fcd=ChrMRy5ea+IO9V-!HARO~IeZSme*HPbWuE z&`Z%3W**TH!PlzzY6s?eL5Fy27ueXvFWea~jrA58xW~3Xoarbbq5GR;slZ@RU_#hf zc;~6Bw?(TbPp>kR?~#QI<8e`R6hXeV!O=WHipXX|X@?o29VZ~s64 zwwSCSBZtF;=p*|(h1MdmL{O@i=6LQU?%E#*5=u-sB1yPNxt(W*m1(_MEe2}NZ&`^9 z{u}sPA#8oPAXIl_vdiNzorB=7kJlqiAOFs9*?~#WD$)+*k}~@ui~r1>c8y7bB#Ye0 ze~tx<0Ag9~SoJuR_0ft4Fcae1RQ9v#x^kY$n4V@UE}v)tB9b}nZ*BpyaT5pn<%BPF zKMHc=q|TY{mXP5kVQi7}2roR#!tZ#&=fP1Zx2sJov(}J}xpOggvR4&ZC2H_y$r6-v z=YA3UK?YVU)|kgGyJ-$S40Cw(wP&Sve@!F-AAIUeGPTwAZqn4cT#ZEU`HA)UfYMWH zIklco!oJN>Bd>kb?6ZQw8@=}K1AUpMd(r_d|DB(6n5G}xFKbWP2!!Qt47e^pupeSr ze`MhZz8-^q&@?g*@ZldV;7niwFmK#CG!L44j-z9RDqzN}Gx( zLWq2zOqoG&{y_Hu0T@e&Ln`-@hzj(`5_8n_Di@2SSc%ETX4%p|{$}vd-LPfBRcqHO7>B(pT7at> z{%+#CRx#FLeCobvYtCM_T)nvch3eglU8Tyg&CZn|)1O=eEt~$mJqHTNe^AsuZ?)u#`#zGl_0(X?Kjq<1*?vSA^>v0Hs?hc+zcyW0uMRs76Bg z=dGqY%Cuy2*!i^6B#C%xe|gFdS5v(gQ8gFQ((Rmu?^+?c-G|I+RSYv`<$mF`p2JOB z@u1xR3X9l{0n0-XR#98|52-RxIA-=MBbbitBhj2TL;pPCymj?qWZ;ar-;JArF`E^c zBw8}n-x{O!^-*XYmsQb7N3^_6^$`h3O6d4Z+TXXqSm5v-{53tOe{3CUF^k}hzk>w{9Avfz?PXa*+*t>Vknm&gM1u;Ea)!zg zM~S_72NsE5;>1(Qe?4NV9L+)72l&;AT0(P#Tig)p2Lw$K0Q^DsD5Q;H@w5rr1$y3C zSXFzx9#^*P^!m(K3Vq7T>ygy6sQko#u~vA78pB`p;=Ma!m0NC6tRDsAWZa(r&W^>s zK!M&;RdZNx%0VW@4UiOBtOcg9C`?Kj&`K$_p4)Fsj-ixLf0`q{+9QqU{s%`)=tmUs zfq+N_fqX_t=%*2{I;RBKng@yAC>mO^lsD=x(Ht zD#9E$HIxn&so8AnVzGS@QVl~-V5y@3@_V=#t-89}tFn1_b;DAv`TOJ9s@d{yuhXs@ zc_J9~%Mb6*e`##&tRux( zeCG@SCg$CodrXldH9%?ofdAc^$=wQCX5R*XXU5Ene=>Xa{;vHC4FT=JgX%4d!3hIW z$qeU9CA~+UA7lK~5MlaIO1eiGT<`JD#Jhc5EzP@lTraiUZtRpgu$KKDJF%ASom=Bh zCb0HZ9;`MVjKlp+yk~qblg}C2^sasG2ybD>@S(Nn+ZEd0j_sX2(Ju7{kNlSPT^4wo z?66a&e`oaQ#~ukTF3K(4yLS9l;?*~?*XRLs!DsF$w8&@e2vFp+bhN#|Z~Ab!aKqHL zE5g5Hb;pm;3`6ti-a9T=q;DVUT{jDC(QEaPxPZ_4PGynH{*Gml%l7WI;JbTdK|itS z84;=dsWwaN_hqiRORel%JLxN?znAe{ zfX_Lw?5(%xyV%>8%)q2Bx{vlI;lIg%y~7e4W20@`TMwy@5I z>Nv25OV^R2Uq~fM6FWPYW1Gqv&0P;me;Lnk$PD;cIG^~oyL&Czg|sVmCtt@JhJ)?ic0=t?D^ z<~0@;V33Q1iaL!&jwX2Ep3fgC87C@i(zfBPXilHDF$Ygfy9#Y0Tgdf0vaP zl~$EZXoFUkw$?UPmcLe>)|Lp}s+;xwBnq##mDjb`q5V}^@OY3F4r!~cYs$exq^ka$ zr(teHBsZ%}Ld1h<_a|v1L4p@VrfI)}Ri?dQAd zy;AFO5*nE;;9W!SHI=M3hk8!5f7sl@**u3%&fP+RO2-Z_ z3KwRQ(8=#%)GVYxyo!wAf51Va!||;7%{p}iCAznpyzNhyr{bxcPz4-qPYUE^eFFo| zw0wYI2i5dx6^J7u&2m`e-Q8`Hd_CWnBIw*{1giw70h%oD=7jo#<4v6Q&|gQ69}b<8 zhLj0%G+w816$#!kc>#jNwV5P1v<{gMbY+U*l6Bq9bgIE?Z8JR2f81-HpFe_04JvGX z2IK4|Sh@^c#-Z^SxD_2pysE2L8j;@Y zLW27+ZZehAdf7HPdiFd!T_b#tz*w_p` z!+rVm{Brs>@9W(c_ti~icO6|4f~1YHP|xQcb1ipkE;_Glr#=J>gps; zTeUnr(3a$BQIKTx#6-$%yWQ&r9aus;wR{w7{4qHf57amj>x>A!vCkuw5hCv_QO2-_ zgb{Ah5BcKde>IVD)kgqRS4f}CST{`2QchuQrX~T1NTCE#Y9%Eu75h>&Y5L_^;cY;= z5gw|iO=CgNwa}Wc>R6%)qiMtx(G&`rK@)0Hg5`j$fOvZi4c40493`5>dYb5cV26~k zH;m;HTF`v(RHLsKd$k{{`pNO}(NVZ;4-4@c=6!&ee?;&r!7J;5h-Bt>)_8d#<2pC2 z)RT2$8W~ww_v6~k{2LR^MrU@y@?wBw;kKPw+ZED^BDJ{b{N|IBvU+H|Py|Y6T|<&u zv`NMTL!{&=BDj?#r;j0B83Pjx9hb|W%DeQhPDiQZGHt2o(%!?u2gYEF#Zy!)X%9ddU)(mtxYSc$Rxx>5cuGc5 zO!Ja4+pywj`5{tCOie)jk}})0{30Ej$gu{s9vWuFoT6C8nj#sqk|cwAg)|x=CwYi= zR(Xa+xkke+)Y~1WC&ophxi0$I`PFl<4_`d9e^ho^38rOB@d+dt4z9)RgWFU73RR%8 zr>RulAc12_AB#1uo*Y9|)uN)4Nvww@^weAAFG@tPvLzv!<#Ob7=d-MAY9lYAqGZX3 zdd^Izyn({Vz?6(ybWG^ePWgRy4%eiOU+~L2i%4g6OA-a4q(0A0OT;b>!#rnT;jEm< ze+HE8Vs5lOG9}yH`HbkDnRDtFs45osvYuiU6O5b|2rh-2N6vIT070XGzh^7*?oLX$ zM$&_GSdq7AqJu)BvqE)mJRrZ%Beq#-eSeelD&`)(pm1*5-II8Z5LhGFt;!nT+fFNZ zr7~bXxdCW>wMW(q)eKTJY4i106jtHTf6c=EP0k)0fIr6Soa7j>s{r1uZ-1_`JXQ7b zd>$9zUX~J>lXo!u$y98^)|P{ZFVFWbg3!aDuykH1ryNw6s1(Ey;CHbf0+x0 zP{tgW;6f`MhTbpaf8q5M^o!GIr6x^bOnFMNh1If0oQ%dOs%Y@0o@!J`RQI(<>sAm# zMB7&^OjN9_u|%gSm2K?Ob#YXpOEp&{r)UC@o6BW~HPh2YaXt8ppL0P?Dwjd$z zV+q}35r_y;;6~5PQmTDfRlQ&dx~?Q6Pur9Swpr#kQM@!}eA8jqvT(0ievvOm#Z&P_bbjK2Cz=|e{>hgDA3B;n>#j1au2h)xi< z10wm}EiYpAI{1A+ zk8No}6?{;?Hzlm!c$fs+8!L&M&k;;gh{CB4>+m>w0Xs@4rUqWzxq?RgWUe1h6JC6S zw-Z2c=RgrOK8TMZCIR>vbWSqsR~-wI^tXbJ8o)A;9cJ7=OvjAE%{;HC_Jdo~f%WC9 z*DK8E^Uv~$#Op(g+F-+?oZrscF3n<|gC^yuzxREQDUlYtR z#vwVDvE^}E10Y|4X0?r}`wZ|LX=AlU5n{Uk=ioho%1?P5;KM6%^8&#mmR)BZCp%HQ ztkvdu3}><*UmV8sdUh)pT=?LJd6f0FVG?S<#Nt=R7a@cOe>Vf?af7-2l>j_I!@tlX ziA88)=JuPHeBG6}1O>sX3cziP^4ae<&@(TBVa$646H0;nYF2Wf5PM!{<)DY)N(&$A zjd#s2f#*ST+YetemPJFqyuVBQ^XUm{@*vOvFky%QvND2fRc`C~u1n;?G(NznvUn%q z!cuUim2S(%M~ABVsIIK2%&fKkKNM!*mBqjxD&=+{ zPrhXnBay`td4Gxhh7*CSD}EL=UCc0aIA7Z%TlY&b{?|e?-a$IjNQ|$qeSudo^ga~& zUPOa@vX~#ByD3LWkB?Z93afcJQZ*!7D*CS;z#Gt!o8p*y->x#Cc5@6~8v?Ji5(D0U zUDCWZd!(^6MKhFJQyvwfu3@|q?)E^RZSprH@j29S^zlt9yjyK{XoX|W?*+;O zx?-xpHy;2T)o`RlK2(+Dh>ZoJEGQAl$A9j|aXJ2}GE%OalX0fFh8?!sH`U$l1Iznd zeFCt>AKCU}I-{b>#LK(RRgh1{%5K6r<+MaX+JNxoNWJ(ovyewZT6QtT{)kB1NX(r5 zo0Aux%(?)@dE2>8Vu$5c6!inhmqS_k1(n*w3JMepOtGb&@E;OMPCP1ea88u#!hd7@ z>?R6i^5}5%ma7%6Ucfx6oP-{w;X0?_V`<7g5}B|?Q3YUDwGuY6_JS#JH$bEondBSH ze(_CgML5hGTgue6q0oGv@=)EM?VYZKsN=fs>um64PD+lPMcU0p`Sv#jIiizLd$4aa ze+ujL8tL<)!3Ll;qn#DyKkxWZ{(lIfW+rLbBF3Y@W-izr?tfq{{cySTf^c#sqbY7T z<5-UpcSEQu@@U6r=~z8LIh_QX~dwZFH|kh%Sc9Q~k_4v)lFvVXn#-|8>Wq4#|BXMZp|IQ@b$ zv9=I1sG<&E7l!vOh6j{|C$jVjQt-%7JU(X5V?`*d5y7V|r#g@9(8L2dHbA^lZic`M zLgl5y&`jc%I%c6fOS=8g7OLFYSJbiT4s|k919%}iVs#t=H$%g7o^?0tgM{XQ<7YR4 z`uI(4D#j6Nsx?h{)IuriihsNUYB&d1I?Rtkb=z+2azmE$jPCgSCF7lmT6nCHpF1?!!ShfqF(V}cU#i^ ztUT@4v>k9A<7gaCX|&1umJqMq*FKd4T_qex+|T3($9p?n!%K4Umw$Y%cEBi-tTCda zp>@Ro5VpBhJeOhLpH;=fDid*-jo@)E1k*Twl>$>e=}um*-G{eo>pqTsJb920fU|Jo zj{>&1uAZ(n!CBnt)&yO&pwluBQ02%~0oJq*kOdiDHF;PP_pMsz(|JBQeaD*BvpsxI z8;DW5p-EIc)$yZojelGI_G}?kr;J7FiRj=xIm7nl4XM$5RxB~tfE0gUnuRiqNkJ$x zV7C)0smEp>oQ}ZnN6`EeUi^VxEG=KbR4fE91kHdsx!GLYPDg6kejIbRqdhCFyjRMQ zBi=R0S}NJ4FasfbZGzTxL)5TQ1ld(xGt!mI=`3PZlA&PV+ssZ+FqF z=n< zxFwU#$=MOxUfEw3?H++lzXz7sLkA#FecRl3q{a9;r8tfXqUb*(eHKwt@czPNF|;ec zg*{A5;>E2>HaFkun~i%Tw<3WtJmn@1KZnfC;?lxY=fF8NJu5S7zXbm6=~ z_wcV-J&J`i8a&}}$z%Z1KKQXHZNpR&&Dk-Qe$)x=etTR^Q$C$W?6>_x*SooaS%loK zkt18tuGOQKysn9(hg^K8XM$VLBHwScJ)$YeC4ZqTxcMkW6c2kI@RKsm6HWD%mGfNY ziq&Lel$}Ppnl_R)(9%>~RXIPJpABFRZmFg@#YpLZi^f)jq1r}b-RX2T?7mf-QC;b_ zrTn0E&DCzm`7tA>w*MVLAzeGVS~Q+qj*>$d(EC`uEaJT{(O$Zwy68+)r@E{j<=-?u zxPL;AY*`$o@s z=+y+?{%6{zB=3(FH#6J)RpSj8 z>ee{}FF^NKKzz>)e^F-fjUeSdbUK`mMSoj-dTY2xYkIRIoRvM48)uTuevuRYQg2)G z4Aa(w2~MaZTyA;{pMeafeQOl*;M=>{qqi$CYq`eWn6xC=(lT}~_MQPAha6}3q>?{rK_koTCeY0sfKztbbsk8M1&_k#aJkqklRQl?&zpb#`CsTo{ikL-1YrNFCGf2pqK;^&jcikJy~iH3e9&GL(BKWs$apPhKeJ7i>x_ z7rFahFt~@T7TdN;RJa$+KYw`MOBs^~ue@|~^$Z*{bt@)u_P?3jjVK&slUNuavO-C3 zu~r(+*(*#3{^61SL^yryg%Fl{zOem=$XT9kM2eF0qEo(tkrN;V*!Ez4+x* zW;u#WLr99u@+nMUNsE*Wl?MBgJdA*U^ zoOATUBUYy>Cx|>tFl;G`0!TwZs>cY!0Ot^MqWCfq)?nB*=U%(MxmLLIFhWwh>kO%u z+!EZ7d9!^o%p@|7X@8$xrXr4M@D{F`4Y9w>w<-g&hSav;NotZ%$_D%I`yG%o+-Tsc zxdo5V{eU@o-{36$+gDPfWM1J#M+RR4z0nk|8@27dl&!s@^?uW%dk^8Cwx4XtHv1m( zJHu<@+{qfq69@Yr;&xsHwguA15fpg&BFF19k}r4XCq2pg-+!FoFN$gyfPw1g&R#*i zLlCBQed6J-1w6uXirF4DJVLs}eD?r{HLt*?R|xVtU69$j!A3QL%}egAUBRW7q{OdS zMqW6}`!v;p?Sa0-Qcq%AFUI08lzZNvm-kurqS*-UroKF^4ujYdAauZ$>F(IPGZ=Yd zVY{Jmx@Ap)oqxM`cOtf?00SJhbi?i`x3m#5GyHC7w$`9Cv%1?LYCZiN`MUZLuIYC6 zca2cf9D4BC#`bvVynmi`5O1(}og4>~=|12^#8rF-$ynj}Mg?mCz6GD$hKV0vlS9DW& zMLWPI6PCL*nV0yPWGcD_eD0q4UN9L}|8VTT8Dy6#(~g{T{*dnH0h<;Z0VgJCw5||*Z=ml-J=9V=u?elHfT809Tu3`qb$H(Rx*C!p z?Zqbr9)EWVOH4=KZok*Cj#nh(D~PX`LRN18cE@F?aT&W*rS8&2IY6&=F?~u=+Ag~# z%cXQi(}RF8AHhZO3lr&C;i%vR$g}fH&$IXKbbi>&;da|OwQF|!F1+N1$PjwLl3a|q z5sz?Mn*@Zd5b3atL(+MH7|F%{S;6|V%4%{RYJarME8CjHJ3Q9=r+2<$s8^`#pQg+S zd?i8b%ar^1B%?B8J%*<$2Bguu$_yH2M(Cq0#<7$*uKD}VPrks5OL+ji`+FVy6c5-o zz7i~Op5dR&2>m?Q7)zOA8x5J8zO;CWXkwSC5B4t@x$BK3MLEwnlHq6g-@eT1KEXle zt$!E}jdH}MAzKL8LmiJal4s}uojLxfb3K-8??H7Sr;Hp$mmn$vLS2~nR?ay*p0B4m9 z&OK4a&?=%dQD!KxMF>mNL<9_qL@tdeC#2ZC%&I_OgdOO*8Gkji&rWT~7cskLsrM=q^vqk6@s{Zx z;p>L!ne-c`x7;y->|>Q1wz7RXJ88>|BQakrDG}{d!NpjYvY03287h0#tA9tt=8!iz z*ways9nMqByst`D;`N`IZcG%8-+x;`fPjo4|E&s*qOqy5+wWYrq(mu46fwjhPwG|8 zv3i;Q)$KS4f_9IpAfrnV#AaBiL||G_WrM0R>@!&nn0VDnRfgPB%9Op#!fUiv`)yQ8 zh-i*I$Gv#EILWC~$@_YxvhWJ-xwng>O{b~J!zo`MUkD(Q)`V|Fb{c+EP=D%vDqxGK z>S|l%z)PsD)%+TMIM7z)wPpMwepT#ik$p74b82VNXF6nvN=;&*q*T!Zkkra&@a?O% zY^g8bST#!v%cCW8>X~BpEb|TTr}|9zvh{?EJ6{F zlQQLOSShuOY_)273w9NGM1Q#4-=+grvO1luL%LCKcFW8#189ekQqc-mRfE2xquW9R z)A{Z*Tj?%3anZkew`9mdWR+F(z3e1+ntGCJzHuge`+J<$y5T&tE6OP z&2Sy!3AN34{O+csGKj{+Y*wn58V_NFS>dITJlwj%hc;Zb3Yu1Br+=6Ro~YLAI4)e* z)@!L#?rO8KUb?d@+)-bO*S7+QEo3)YmT6|*ULR5Rp2A4CLBx^NneUm{E;oml%+L32 zL_cF`a=_~mZ%ehxY)N;~v)=Rsm{#x4k?X+1>dF{6A&z+=Y?t0)+ZbBr)?6)LCCSJjz%FEU{9@{xA~ zzx!NvaeR3#-f~0b`E2Tcqx{VF#dbRNn<2aG3nA_h1J+NnE#gTgJ7`&m5u8>Jf6KBk z3(_}qgPNglfq#(WLa-0}u_*6?>VXLM(c9pr)4i+krX;Nr9OulWw83@&!qyw)wM5(! zgM9Q}Z`2-d>K>Ufd#cn{>|Sr=9&gH?f&Er!Qkx(<48qnaVs??}_K2_t!PW?*H30Hj zB<=$o>3N`?1!#$c9Tdl8uP}OV5m9R-C>zxfN9s?w?SFbCZCQV*QF}TDd&J&-B6c1B zjD%gE?tXls)*{Gi`a$o{Tj;aC{ERI4U%;42b172$ugGwHgV|sG5nh)VxOqhhfoQ|5 z!wC~EH~r#Et)BG$^|arxWsTAM1Oy}p3px>m?B05D4aGB&mh8)AoTkLV(MSaNR^xjA)sIKcs71#s0p%$4O+2UhNVAy-bS3t^lBtH=H zgOHz`FdXxN-4==1E&mJN5{IZoq)6+~m=;3rOKifP1sJ&sA`uS72FwNZxZx+r5^9G^ zq#gse1ToSM=vb0M{mwsX*08|*$T!mQQLIl@I*Y&mJ5bA=#g86qRy4~XhnPqhu6c`3WhuN$9s8M zp6jAtdiP$OUi-V{`Y@w%j#~L5>weY@gM@RJ4hw<1kWYj-<3bt|`q*qCfpp2|>tVai zch|sjn`|wCaH=Q*T?>;hWwgML|0|+BD|xx`y+4ogn;l}DeAqbc2ge5P09M2 zhQ(Wp-X?7!Tbxu?eOaa~`C0kCU)i+Y_~@W@Ax@?+9=L%vt#LMD)gUc034aN8Ow(F* zs94!SN~fNMB(;${+oEQrqlm~kI;nc6l_#mvf^t5Mj2`(+HNVbgz)Ilhn#oY7uDn^@ z!BEAJHA~!vTD_(@1WS#Dt&lk}bO?nenw_t>gE&s1S4FkbID&r>K)g^*oOx=s`L*bC z-#Zk|+u0Snu_6H0T0&6*Rex!iM%A*ifo3(;%oZcjWQ9oz8my01bNLzgG;Xfg^YeHY z`+@;fFr6GRjaVl|bKZoajrf3}wWYyPV0yctuZxmkTPp)jL{1aoqJD&PhtjR1g=^;0 zzPBd*SdB4w<^HQ#xkeWiOo{fLOvVr0C$@${rbW>>{*qqkRR!&ev45$G^|&*7S78kb zF^~>sfB!+kDX)MoBvD~S?h8tEdVMM;wibgCa5T(-{; z63i1j!RWAM98cbk+3dZYkyb4!84$RV^vz!;%`2KF!c8l1zpRKrqr+T@J{ZDXLbzs1 zK#~IFvTCZ!2Pfgu+uKt~BimP08_y&UHlse&ZB0Khw`!koOSLk8?7ATAU4NjOEfZ1(aT*+98dk2U z`-F%1=Mm*J+j3tO#2sJ#*cogLmSvL{yXjBZysA<-RGjit$-c&4( z!0ow?^wYe*?NV8)*ubx(5Fr3iSawyd)}dW;E0Y`z7CsJyn-Pf;%vuPv`CSi`Ki?3? zjobkSl}$NqvVT%*J$Jrg^JofWsE2@mlCBgB2ulk05{y#`XQrGj9JUZy+)5x_q`bE6 zFx^4TwAf)5kyR_yh+{$xqo_yAVXOnb^M?|0hDp94n52XJsla%Je|trX``t&HJG?b) z2-RIXPAryXCh7vl;-jnDcvdFI;n{o_=mKETTgPfo@_%EybRRtxdvv&rT9<)CWkXBE zp$8LV!{Dx&gH2Jk&FeCrf-v3D6YaiZTg2TgT<-Nds5DggUQ{+M9Z6}dU?pb?w8*Ie%A_*Q`7|@jv<{P_^1<&(cM}n6v>GeJG6<;| zjM}5pSbqfj#me+XjEaQWpXhAliz5|}3$QG)3dEIVhA16U)A49`rLkgc)31@PG8hF& z(-|d5230wF6Gs@0zwu=fqDVjSzvWC=eibv`tereqpA?Ld##wV!K3dUTjUUmZjHToQ zRVsm_y*bj=v2=r2s=q%eqWG*-Tz=MO-C)oSLw~V^kp&vnGBDfrZo+mZ(8bnTBJ11b z={BCXh`AJ*q=Olwl_uTm?j)mCvq8`!Tu5+O!~c3JqyQDrbL}OV&g*MRv_ooE^E1vDTd! zWv-KP0kO8T7bvHY|&0;Q47SP9;x~3^DK%A9e@8q zgaQCQD*alR1zJAJU_L!hfs0!~2&^>EV16Y}VQI?>qiIwG4w1sEA#3qXJOVlvm^QxF zsv}Y=JWB4CSr!m=QdYH?Psw&J7G$umNjF}R_tL)ou&(V?od5$=00w~O$LZv^CJv|^ z8Vp9Wt=w=l%*q}t8W^nLj%w$Q3V*@Cskvh29hz&c{OQ(Na%Cd7i!?A;;)!j0#Y{`b zy0N8SS;p33`8v~ag{Qoh&IX?lK*T2l4ib22?lt%cGP*=I)THHNaQJOyvK>*Q1){*F zZ+P^Yp)>S+*OX7qLuD6;zwH_Bjz5&VP2TgP3o} z)n~SC55(foN~4zNqnO8g1An63ep@-o?+R@@rMlAfL1L&DxN%GL$EF9&q)LY24d$}1 z_r&x-h8B5)^Btm}2IHbdr_`X=uaW>OG#k~!K0oJP6F-92{>JkN{NT>u>Op{)yZFfqOm3%Q?S`%G zMCyu>wy&ZU7otuER(k+Nn}C#0YwXe*E5x!eeshe;z6v+$Ofl-jh_^ar|L|bMCKh~+ zT&7jRpj9LOXP?q}BC|~#?HXmykWCwGC-;?gJsgh%+Ij3*tACcu4&LCN?vG?2LAuif zkXAXo0UvjGgy9T!{upj@h%5Sx5u$WIJ+mS=>4+_RYh0fKnI05PlI;2DKBW~#?y9PO zrWFtF3XR9kML$5})K1LGfSc}WFh=8)M}l%w#`-3ui@z;{iJrmUkcHaLSY!;nm?*tyN_lqq`Xr=x6xrkVITf9^v9g-; zK0O0ve65ON!^X)%q|b4@3yJF-?!ubR(x-;O&$tApl7F^4?Uy;vdDXZ2E?rK^@sm(C z%7roJR=0GQ_VqHR*`Gc{1ENtj1|oSmBc2P+GWI0B0>}V5J(bt?liy>XU(dFfaqh1N zJnITcw@lm1phN?x*NdWNx+BeMF~}AVQKu9;dt4uNsVyUq6}l)7mRa)54t-pbTfsva>~9pQo@K?T$ovs1iMr;ziK93X_frPqxlxZZQ--rpz#wX&G?WRdV3j4 z!KhcHXgh-iO{jtzuc*!wrt`jG;(*L6tO|o9Z1_yQS0p-mf2r~SIVm2}>=yUBivh=z zdVcxTe#{Lhejm)~#qkG|UT%uu2iU*Pi+|SU145qvp^gIbZ!0a7&5Rwa^{xIfEBddR zP*IBOvj1@F3ASl(r3It(|4=P;mKs>-#|gM9jtevrhzG{N7Azi{{=Ak|)~+P7+3&hF zh{K}$2*jIsb=o{wj=?!Hp2h+2+I-5e-R$xLyF_&TtZZkDt@c^F&l!TvZccQ4kbeee z3^r*ucvP?Fb`1T41AWqsa!}o5;jt|g$`KI` z6)kq_nE^JSl$A;F^N%^nj@GXG!(8ivqaAo|92$%YGbZNu67t|S!u8aOA0L&jgo5SO ztQw!Ji4=qPediRey!A;Fh4-68-!S9X5sXYqiOz}n0%UTnv-j2?k8}#>Sbr#3zP+aS zFcjv~$-aHIAtw`=4$Pn*HElh3i^`mKBFuIfsK}Go=cSofD3%iiz1=M~Q_?!xpPnEa z5l>d*^YbPj2OL$Rj&f>quE&9x&`ZT@hCVU4#dJ7+Z(C7*A(G6|?-X0+q{@n`R=!l0 z0Hzuq(hzCb(!$jr^m?iahJWdAmCsd&Z&N3(4<(65r`=}s6Cl7UQmDlL*B&Iv=aLHy z2?W#w4+KR1w|dZjsOhL#I-)FL`9xEjt6A#f46u^J*MWe0fyBiM5`lnggMu&fTM2#1 zs};8-qP9$0fIeLt4vI}~lrWoRmU)ULO|UOvl0GsTlqHZ^k?v#0Du2#0FUj&cL^uTa z9Mem$15T@r$5?agCfy%8vmQDC?$L{zuNNx-AiM!%xDz|+o(Go4JumG6C^(-(Xjuz+ zJ89lR)Iu~&=wRkRd+CANOt}$)f}O@pF=l1KrCb845Ct?2IMQp%YPeg)2K1v^zClz&0gNK5rFB(Nznv%%DG)BV}0GB@2~AAvrO4ssIFj>0WtKRY>E zQ}uO?PI-E0;2xSZ?ZFLF`I%V{@$OCQVmQBJBT~~_G%-2s#cw{0QZmHm#kZ#f>!ZV_ zaz`z4#;FAyX^diqhP&=JmHGqZG3jkTyD9px7aDll2pp#;jeoen%7fuNqmwzbG!shh zm^>=QL)00SYL8URaSGh~X3z2m(E4?Km|pK|dz}Ui(AkI$2a(e%d%krenyM&$}5+@7C-pH=7yT^p6Z;09jFX3e|#j)rm!>AJuhB@miX?lAR6g%tq>>&-OxcIOu10`_`s)x+fWc z{grw<*Hz4}!p%h`qE3$uD5cAAe_AjAS_dWK@f0kegSSS*4%Jm0bDO{g9}{DdT3y+MX(eJ`6)n@w&vG$1AhsO(vAYtEf5+WSEh<)jg@{Y3OoU$ zx^fYYBW-<^2J`shNXUKXim$EL`5Eg}OLA-0Z_qqh*%+s+KN{}H6;eji!JYzQO%u%zbQApy}+W2=YCx;z<-aV*YSv<>1kS#FS@UwM*ppdm+GqY-W>2GiID zbAPR&cUn-r+yV`!6=-`z#UnZ3UuE9m0f?;nOr4n8_6a^xK=!YkUSh@ab#lZteZIuV zse-jFyPT+$3lf3Pi{3v*=ypCKA%wRo)=5+;oxI}j$Svi4Zi|-m>ATfNE=w17{tRM4 zC`BPd$Qble>{inxmrsiq3U0$62ENn76@Rj@NpL!2wxvY9id&8lw9y7jQ_o#3ojVgz zgP>C>GVf)H3>OEn25Mh4!6X_mFRW@8N?Cp8>NXwH2T);PSRX;dUbWo{%p|ibY%xSe zklFfbixZ?$O*Fx!?YPFoM+jJ$Z~6Y5l>PqhMv^3@Q-qEn)~75+)n(QW9Tl>N0e`J0 z#=M5UpiY53Kv_5FsT*Tbr{NTCz2WFDrbvUG>E8MCa9qNk|F%GaxF7Fn90SvR+;=w* z_(4bnga}`lhKV^Zs)plCU8=tkiRq*^8v?J--e7R6F2}?uTHY;%zg2pS?n>tsI%bX58|VUnPLRlyZSxF1!Mv3MYmki7Glcd+*MTA8|FFE7@x6Yu#1 zmJZz2Yfa&{_GZY`vN34$LBqV(du*=U1KTp`Fd zApMB9@7DkLg5v@ivVM|hfPck?lK-w1vSc}Y;%%Lv{=(}Yms|m=Vp~`wrx@2FW~q2x zpVgn>RvqzD@Q$O7b|@gY#^T>`p_MRDq z{aCUB<8I^F!1LX4G9iws28MrZN7K8q-J!-!wem=^k|T{ThX0Li}54QWZNReJ5i@V?$$em;V&yOH#3RTop$2sdh2YP)HXI%P0{9s^BMYgnt4XaFHs_YIU*5)#JoCB2}p)AsEYhqj&}8bxpO$Ox=dK#DAoM^)w}+ za5vuyaCuPmY?>0vNb}qaMi*A2p4wzzIo3qEK z!m2#R?E4ItBlX4~PUqwWrPY@nTptZxuCek&A0P%>Mt_r0sNp%{+P1L$9=#AwG_|Rr zpW2KQ1%PXR{pq9Zt!q1fwy4@PLaz(|syqJHI>F`LL;wBwN%!?z^e9~;*6e;a$%XL5 z&46fEJ54^#k98zQv8_wl46$r&vPq}c-V+Ax8V-Rak2_9SAJjMz7q-i)lDsj)8Pw=Y z7ZKra^?!ajm6*vlEa&YCTWzT4L%lIo_4745NrrTbNt$tojFa@C`uFp1%JC)Kuqm=! z5&G17lMh~ER+qFr966PvbfJRVjLe&U7nn;Q14J`14rKShIr@wTGtr?qwnCV;1C5n8 z^m(dU&YTjax2n@IxL4B&?`6I>n(=9{+Jk5ydVl)s-An4GseBFi%=mkBBn(A1KleM; zg~6}Yhqvnd(zyXUBd-i=lDdh($|=D~N%uol8rJit4o&d_>)qh2SSHbo^@|Uj)%|%S zYnyD--6$Y3m8R2-wLvA!8W)p>YLpAmeG?7S^K7fg(yQHU@dXj71kurp&FElj&Y{6V z(SL(wQfPQL1V%g5U3Rl7V~VL+w=M^XZFvM-E7ve$G5JVHe7Ei))ylLVs`(RVDZP0( zm(r8+n9w<-jj4S4!_jTX$xsF85HAuY`%bL}YP{UH)K87N52w=wih*>1DR`ma*^f3* zhi)?X&VBfcyI|1f4x66}B!=0%+8ocs*?$FoMWnILSSjKtr2C)q9;D%!MjnO@<4g+0 z&>y-tN@E`+qA5+$)g-X{fV{qO%+9N7OR)|evwy9o?{144AWDR^nB2>}m zD1*i)@lq@jGoq0)O;I zwnqCNU3YQ+HFXyxGe;%?^Q&N|rdGPlM>q`Mu5M2zHx+vez7?vplDlGkcw+eu_L~8J zqe<8>PGE)jMtk5Jl>JR)ELY%T`7<4b6@*ILub1)_tO{Y3zRIj7Ayt&W0hbE3Sz@u< zbeVfoT)F}BWSJiQo2c_{t(GCNRDZbn$se->{Wq*D9$+A#d60jbH=$~7?D}6FvK0U6 z1{(~lb*xyupRe8zW22?t*{Lrb8(3&R6GBMbk$QBl4*s2M!bS5??#lF05d}YT>Ydb( zo2kmpFSRuzlL?S<;RP5^dwPDGGX;{nA`Y=sx3^=8Fn}jgcebMnVW>>oa({t$wOa~& zz^&wJouYr2CROA!9d;`M37+|k1{GY!Pr9Q*RvqD#vy>4y4o` z@I|@Kcf+!bDek#3T4e`c-2Ps4%)~Q7|5;r$zj)&)C0|XAI|?(o^Bb8$xzXN@>ewcH z)2Zb8Dx-|i6TN|YYr4qWaDU;#jHe)eg;@+)2Z3U66pTws`AaggR=8fLFj?G4`oZ=Q zo-N!|LPeP@cDRnY|LXu0tDIX(yB)&_y{`%%Y<1P0i~M*{2(r*VU%I`5=)eGo75h)8 z?cKZxF}LyB>zbKaBNKG?!Al9;!DEt2tDPacyAp_(X5=1o5o1 z3Z=N|s`uo|6`wmW>lGM{*C+YYKo=!6glo*?jta)|BBIJ3Zugt0Z)sA5870GHQ^PSy zeE#0Gt4c;gG=~N&ntxK=uqGpNU*T{1_V5_{Aymg2(s)I?zEYRoGQ8u>B{|^B;%oSm z!ADsQj-qeJPOOrP`HMP4zn|m` zX@?TI$#NJ92nZ1s2#DaXJD;Yx-GAwOMXA1a%4%psU2Mw}tAF^mY*6}sV!0Hk^nQh( zp#5mYwaCpu2-F1$p^BUmxWDQ*w4d8NF04QYDXu7@RSe{V&0tr26U+jI1yLOuABJ@) z&+@}6RyxZi`i!;uzKc(I^048Jb1%lv8Nb)*ImPj?<~YTZ^Rlt~8l{&7Mh`=#{Rk`# zcfwrhnumy^O@Gc`i^$p?Q8bG1!y%_8Hq{bkb3FvPr7hr5&l;g~Pd} zgS$pQCKv-W`~ae_rytm_ceGsf(`vqW3WfX{CTxZb&wu)76D#9fBH@wHL2=VB^Vp$a z#+%41$TCY8x&=i;r+JebxJph8#fz_QIJM0vDKr1T~A_J&^_ zb6GLVst|(5-CK@=K-NhwpqN(+I^1FOq8PMXIFeAi-Qlh|& z#EWs}#f?nM3Jc8?E4Wck6gg2o6;cA!gtNwFgAyT?4kOsQ%Mq?5n925!^RvmU_gu=W zbq`-JBThEnGLr#kWh8^;Tcj|bF36Yk)NG4|v1E)p_mM-gd*yxuUe+ndkZjSs81u4F&d;+bD_TTcN@D$B#%G^M6-{x5tlA8Y65Wnp7#eT+!L<$o%;{50#g z-e&W++Pl6D=KRCRK0V^smHA^{GoO%c%zn~7`+K<5;JypyOw$wXAZMGLRRE_yTJRho z`)CPb%Z%xkm;Gh?+L9%B5#j;JY4myfY85s^VIIO(E30!0G2AjTUofW=VW4xQBKQnd z(&AbE`xuQ!!qDtGQs=E9n|~Q|eQ>-kx7nSIx%~En(NRb6(kxcCBU$cMCD-s=Rix$S z)LbEKi5)ng@*T`%mwZF@;lUm%g`(@5t4f!=@jYY$LL%c75qs}Y&Wu+KZa_Oddct!0 zWXd=RW{gTAw_iI_zpzygk6ZK#Mr#nAQdf@W752mS7Zb+#BW@|vEq|G{ke0_CuS71# zOr}nm45da6p$x}H_Yl^AMh>|QnE6h*b&_LRrH4<>_zDkf$JGYSD|c$GFH*I!>1mbU z*eOeM213WMCamV`1kVM59qCiB(jslv5cu>45atZ<4sJX$ef5;9T!W49)oE%fv8Z!R zOBX?`pcXt35g3@j9)Gz^b^9Ziuhh6B2dGy(j^%n1_Uv?o+Md0Ih5QB&nYqh*^78z; z{G+Q2(w~X-ws<&-30D&-zl^w@w$aup3u!3u&{0(m#uIa29xNBVE5H%JB}hyEU{Y*A zjnYmjJebl}q4;v}fnXuqM`njz07}eN!k~Ex<*C>_2>FT~EPs5+JUHsoMmTQV3Z9Sx zyR^KdFrVSIWcRcl{9=`*s}8tw_j*R^hi#c+n!8Afh5M?l#WyI0;VOZF=H2>2OnOOq zvOeO8PkJDD*l7sK6KJPr>oD@sr*EHJ-A^vzs9wq55pMY?Z0`!jCQqu}OC_n~tXZXf5xuP{Tx*9At z9U*2P+3pqo!X9e;NR+%wSVgP!fx*latP)w8#ZaZMTycdZ_7MU4k%4EE8>F&Kd8$sL zZHA#+sb5$jf`x}+co~Qp(iCZxlq$Hcd~8u#QDlSe?0;C65kiKR0O7V`BNSpV8?gz? z@Pw(iOYBQ4>XUk+4*%5o{6ZiLK_km2l|UX_tds~hVo{|URw?5ZrkkgUo@J%s1nrwH z%P^Gh2qq(@kdoe&c2nY2S*RWVf{;j@W>*rNtUqE6_8#!UjM;w;z6L#cV%A7bJBh_A zY;S2H%zrx8l0iIzdDixPofZIPs%0yPzU9h*ecM+#}7j>_wRxMTTSg*CB48 zI6n(~$Gg@wLe=PS9ZBBl?5%;z?Uk*=|WJ z2f9EiP{n#0#G3(pXBdVw6*;@H_h|uF*t}@~>wk*WbRoRQqr#OdBg{vwI(;a*h*cYU z0pyjGU6|RLdfu=jXWPTa@@~^mF?u`Y*ar*$T0nX5K1Z1^=vYGKRY$r|Vgx+0UzC@b z?TTP|!XK`oo6t-!5e$dO$-Z(ofFf{0*cis;<~xR*K7RIrHrFMk3uC%Yq$vW?$^>03 z;D2emE(IThjxpTyQQ?x>a9Lp7m2p%j(h-4ZJ!*62ocrvZzx|=KOZ?6Fn6L1i=(tAS zH|g1O-q$}xxxZaq_>P-X73B*AQAQrU6XOBeX_daNC=+K`ZIopgmG)UAc~D+dUE!A| z`}@Yz@CAo4#ht5qRkXbl^g^)562XRV$$v|z=|RvF^HiCQzO%p%7#$M4Ei7=KR65w| z6v<`h|7tL)yNL=z1fz<(k% z5Ksf!pTvkye@PV5w>Ear|1V?BKZ&r&+^So@+CL$HfN1}PSOELiL|bb+eM2WDJ98Tw zV+R2veLJWBTpan6t?$o`zzhilgoN=HEany1xX9+d4Vg**eMS+vuAbJN)N8&p)x8z*q%Tzp!t=HvWIXZqff8telOK zlfHwKvayqyv4gpdsgS;vm4UvYl(e|j1J#v0209cSY| zd4JkE{pOYG{B4t`KcRmbDE)>e=>C82?UeqE@~1`1??cdjHY-KeG_jQvnLOsx#B{zyJU;&691_Ndg(d ZlepD50!6};Skya{E!GeQ=)wR1003Jf>Nx-a diff --git a/app/src/main/java/com/xypower/frpandroid/MainActivity.java b/app/src/main/java/com/xypower/frpandroid/MainActivity.java index 4fcd561..fadcf86 100644 --- a/app/src/main/java/com/xypower/frpandroid/MainActivity.java +++ b/app/src/main/java/com/xypower/frpandroid/MainActivity.java @@ -10,13 +10,11 @@ import android.content.ServiceConnection; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.content.res.AssetManager; -import android.content.res.Resources; +import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; -import android.support.v7.widget.SwitchCompat; -import android.telephony.SubscriptionManager; import android.text.TextUtils; import android.util.Log; import android.view.KeyEvent; @@ -29,6 +27,10 @@ import android.widget.Switch; import android.widget.TextView; import com.xypower.common.FilesUtils; +import com.xypower.common.LogFormatter; +import com.xypower.common.LogcatHandler; +import com.xypower.common.RotatingHandler; + import org.jetbrains.annotations.NotNull; @@ -36,6 +38,9 @@ import java.io.Closeable; import java.io.File; import java.io.InputStream; import java.util.Iterator; +import java.util.logging.Level; +import java.util.logging.Logger; + public class MainActivity extends AppCompatActivity { @@ -57,6 +62,8 @@ public class MainActivity extends AppCompatActivity { Handler mHandler; + public Logger logger; + private String mServer = DEFAULT_SERVER; private int mPort = DEFAULT_PORT; private int mRemotePort = DEFAULT_REMOTE_PORT; @@ -84,8 +91,36 @@ public class MainActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + File file = new File(getDataDir(), "running.txt"); + FilesUtils.writeTextFile(file.getAbsolutePath(), ""); + mHandler = new Handler(); + logger = Logger.getLogger("com.xypower.frp.logger"); + logger.setLevel(Level.ALL); + // LogFormatter.installFormatter(logger); + LogFormatter logFormatter = new LogFormatter(); + + if (BuildConfig.DEBUG) { + LogcatHandler logcatHandler = new LogcatHandler(TAG); + logcatHandler.setFormatter(logFormatter); + logger.addHandler(logcatHandler); + } + + RotatingHandler rotatingHandler = null; + try { + File logFile = new File(getDataDir(), "frplog.txt"); + + rotatingHandler = new RotatingHandler(logFile.getAbsolutePath(), logFormatter); + + logger.addHandler(rotatingHandler); + + } catch (Throwable e) { + System.out.println("Failed to create directory:" + e.getMessage()); + } + + logger.info("FrpAndroid is launching"); + String versionName = null; try { versionName = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName; @@ -154,7 +189,7 @@ public class MainActivity extends AppCompatActivity { if (mBound) { Intent intent = new Intent((Context)this, ShellService.class); - this.bindService(intent, (ServiceConnection)this.connection, 1); + this.bindService(intent, (ServiceConnection)this.connection, Context.BIND_AUTO_CREATE); } this.setListener(); @@ -172,6 +207,15 @@ public class MainActivity extends AppCompatActivity { } } + protected void onDestroy() { + super.onDestroy(); + + File file = new File(getDataDir(), "running.txt"); + if (file.exists()) { + file.delete(); + } + } + private final void setListener() { Button configButton = (Button)this.findViewById(R.id.configButton); configButton.setOnClickListener((View.OnClickListener)(new View.OnClickListener() { @@ -233,7 +277,7 @@ public class MainActivity extends AppCompatActivity { } catch (Throwable ex) { ex.printStackTrace(); } finally { - closeFinally(inputStream); + FilesUtils.closeFriendly(inputStream); } try { @@ -254,23 +298,22 @@ public class MainActivity extends AppCompatActivity { return file; } - private static final void closeFinally(Closeable closable) { - if (closable != null) { - try { - closable.close(); - } catch (Throwable var3) { - // ExceptionsKt.addSuppressed(cause, var3); + private final void startShell() { + logger.info("Start Shell"); + try { + Intent intent = new Intent(getApplicationContext(), ShellService.class); + intent.putExtra("filename", "libfrpc.so"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(intent); + } else { + startService(intent); } + this.bindService(intent, (ServiceConnection) this.connection, Context.BIND_AUTO_CREATE); + } catch (Exception ex) { + logger.warning(ex.getMessage()); } } - private final void startShell() { - Intent intent = new Intent((Context)this, ShellService.class); - intent.putExtra("filename", "libfrpc.so"); - this.startService(intent); - this.bindService(intent, (ServiceConnection)this.connection, Context.BIND_AUTO_CREATE); - } - private final void stopShell() { Intent intent = new Intent((Context)this, ShellService.class); this.unbindService((ServiceConnection)this.connection); @@ -351,6 +394,11 @@ public class MainActivity extends AppCompatActivity { mHandler.postDelayed(new Runnable() { @Override public void run() { + File file = new File(MainActivity.this.getDataDir(), "running.txt"); + if (file.exists()) { + file.delete(); + } + MainActivity.this.finish(); System.exit(0); } diff --git a/app/src/main/java/com/xypower/frpandroid/ShellService.java b/app/src/main/java/com/xypower/frpandroid/ShellService.java index 5fbf77d..36448af 100644 --- a/app/src/main/java/com/xypower/frpandroid/ShellService.java +++ b/app/src/main/java/com/xypower/frpandroid/ShellService.java @@ -15,18 +15,23 @@ import android.text.TextUtils; import android.util.Log; import android.widget.Toast; -import org.jetbrains.annotations.NotNull; - import java.io.File; import java.util.Random; +import java.util.logging.Logger; + +import org.jetbrains.annotations.NotNull; public class ShellService extends Service { + private static final String TAG = "FRP"; + private Thread mProcessThread; private final StringBuilder mOutputBuilder = new StringBuilder(); private final LocalBinder mBinder = new LocalBinder(); private final Random mGenerator = new Random(); + public Logger logger; + public ShellService() { } @@ -52,6 +57,14 @@ public class ShellService extends Service { return this.mGenerator.nextInt(100); } + @Override + public void onCreate() { + super.onCreate(); + + logger = Logger.getLogger("com.xypower.frp.logger"); + + logger.info("ShellService is launching"); + } public int onStartCommand(@Nullable Intent intent, int flags, int startId) { String fileName = ""; @@ -67,6 +80,7 @@ public class ShellService extends Service { Bundle extras = intent.getExtras(); fileName = extras != null ? extras.getString("filename") : null; if (TextUtils.isEmpty(fileName)) { + logger.warning("Filename is null"); throw new NullPointerException("null cannot be cast to non-null type kotlin.String"); } else { @@ -79,6 +93,7 @@ public class ShellService extends Service { // Intrinsics.checkNotNullExpressionValue(var9, "packageManager.getApplic…GET_SHARED_LIBRARY_FILES)"); Log.d("adx", "native library dir " + applicationInfo.nativeLibraryDir); + logger.warning("Starting service"); try { String cmd = applicationInfo.nativeLibraryDir + '/' + fileName + " -c " + confFile.getAbsolutePath(); String[] params = new String[]{""}; @@ -87,14 +102,18 @@ public class ShellService extends Service { this.runCommand(cmd, params, workDir); } catch (Exception ex) { // Log.e("adx", ExceptionsKt.stackTraceToString((Throwable)var7)); + logger.warning(ex.getMessage()); ex.printStackTrace(); Toast.makeText((Context)this, (CharSequence)ex.getMessage(), Toast.LENGTH_SHORT).show(); this.stopSelf(); return Service.START_NOT_STICKY; } + logger.warning("Service has been started"); Toast.makeText((Context)this, (CharSequence)"已启动frp服务", Toast.LENGTH_SHORT).show(); - this.startForeground(1, this.showMotification()); + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { + this.startForeground(1, this.showNotification()); + } return Service.START_NOT_STICKY; } } else { @@ -111,6 +130,7 @@ public class ShellService extends Service { mProcessThread.interrupt(); } + logger.warning("Service has been stopped"); Toast.makeText((Context)this, (CharSequence)"已关闭frp服务", Toast.LENGTH_SHORT).show(); } @@ -136,19 +156,20 @@ public class ShellService extends Service { } - private final Notification showMotification() { - Intent intent = new Intent((Context)this, MainActivity.class); - boolean var4 = false; - PendingIntent pendingIntent = PendingIntent.getActivity((Context)this, 0, intent, PendingIntent.FLAG_IMMUTABLE); - // Intrinsics.checkNotNullExpressionValue(var10000, "Intent(this, MainActivit…_IMMUTABLE)\n }"); - Notification.Builder notificationBuilder = new Notification.Builder((Context)this, "shell_bg"); - notificationBuilder.setSmallIcon(R.drawable.ic_launcher_foreground). - setContentTitle((CharSequence)"frp后台服务"). - setContentText((CharSequence)"已启动frp"). - setContentIntent(pendingIntent); - // Intrinsics.checkNotNullExpressionValue(var5, "NotificationCompat.Build…tentIntent(pendingIntent)"); - return notificationBuilder.build(); - // Intrinsics.checkNotNullExpressionValue(var6, "notification.build()"); + private final Notification showNotification() { + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { + Intent intent = new Intent(this.getApplicationContext(), MainActivity.class); + PendingIntent pendingIntent = PendingIntent.getActivity((Context) this, 0, intent, PendingIntent.FLAG_IMMUTABLE); + Notification.Builder notificationBuilder = new Notification.Builder((Context) this, "shell_bg"); + + notificationBuilder.setSmallIcon(R.drawable.ic_launcher_foreground). + setContentTitle((CharSequence) "frp后台服务"). + setContentText((CharSequence) "已启动frp"). + setContentIntent(pendingIntent); + return notificationBuilder.build(); + } + + return null; } public final class LocalBinder extends Binder implements IBinder {