From 7f739667b0b718db48fb235084c9987ec196e48c Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Fri, 2 Dec 2016 11:25:30 -0800 Subject: [PATCH] usbmuxd: initial add-on --- packages/addons/service/usbmuxd/changelog.txt | 2 + packages/addons/service/usbmuxd/icon/icon.png | Bin 0 -> 24500 bytes packages/addons/service/usbmuxd/package.mk | 48 +++++ ...muxd-0001-remove-duplicate-functions.patch | 184 ++++++++++++++++++ .../addons/service/usbmuxd/source/default.py | 17 ++ .../source/system.d/service.usbmuxd.service | 12 ++ 6 files changed, 263 insertions(+) create mode 100644 packages/addons/service/usbmuxd/changelog.txt create mode 100644 packages/addons/service/usbmuxd/icon/icon.png create mode 100644 packages/addons/service/usbmuxd/package.mk create mode 100644 packages/addons/service/usbmuxd/patches/usbmuxd-0001-remove-duplicate-functions.patch create mode 100644 packages/addons/service/usbmuxd/source/default.py create mode 100644 packages/addons/service/usbmuxd/source/system.d/service.usbmuxd.service diff --git a/packages/addons/service/usbmuxd/changelog.txt b/packages/addons/service/usbmuxd/changelog.txt new file mode 100644 index 0000000000..747949c2d5 --- /dev/null +++ b/packages/addons/service/usbmuxd/changelog.txt @@ -0,0 +1,2 @@ +8.1.100 +- initial release diff --git a/packages/addons/service/usbmuxd/icon/icon.png b/packages/addons/service/usbmuxd/icon/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9e57dfd85238e23b558aeeea93ded18e9d7e0f2e GIT binary patch literal 24500 zcmbSyWmH_xvTuR}hhPZ~!C`RM5ZoOG85{;@aJK-#0|bIQ!DVm;hv313>p&8m;O@Nn zpL@=I@55d9!`o}kn!S5>bys&+byZjWcC?0?JPsxq=8G3Ea1<3}v|hY;`Q@JhY^`sk%smZS55N z+`!s?YC4vF4wk}Jv=Z-W#C${$4LE^4%xQd_93k!^KH{|hYF7kt|4%U|EzQ5GcsPjD z{ufjFsv0!X&Te2Dehw~nOD+L!8Ua2IZaywyK4CT*9xiS!PHrAfE=!wzw$`%eopV0TM5I~NZ-X9&$dEt*?6dwPh|A~^l8Avn3Hs{VJw5chvi6k^Ia zeau}rxjDEvot*v|*S~7JduW0GFB|`3ZFe1C7ci$5*xlLF%@VO5)^z_NM$Fy+-qAl5 z5!{HVyV)TY#oSTG+0xSq4DnEu5vN7G;jpr^5|I-Wl;h?W%T^h7&Di!pnxEctTdM} zKQA}!ziF-he`bvn!3^g=;_?58%YTXxGWgH!e+xh2;lI@f3_<9O8$vm(4$FVPcmevO zC?l!kvwYBr(L$-4B4DJuv+7<-FX;XQ`x7Y&DZL6j6o(SOR@VA)B?QGOZ)Zkswq)+P z&+M;__cIUkBF$F|EFQa+;8^rU7`kjg2{^5X+L2ckvUlebmc30D>6=yJD&0lngNU8aOxa)0TcgU zBN`c!fc+Zml5g;qQzs&G{Ff{-ge*i;_pu59;O-#TCWll2nX@vL`4YBE+N3O zoX7pW;EygkucB81wdz%37cr_|v)D)v|H_ya%U!g{iWjYV^GRpr%{%cf%uVjGam}HR z7Il5SlB*)kG}_shP!Y~nV4V7ro5xZ4I}f|zR)o7}C}Zk=7*d4-NM61re_-=fDpccX zs;r(nIda-pPtC~AU-V5f6RqoE63tprEJ-cQ9gt}vn=UEING$<|Em+LIxKxS_?3{U5 zm71CAWg?$P^j1n6J+?SftZ8%TTVkPl3|0Y)+1@*K#Tof&6zMZHQwsYST+azGMQYA> z;!mlWM_%WA3lM?mIKGZllXKQn`*h*gj7Wh&hPMvncI$0(0hCUHjcOsB8c|iW4WEAA zobnI`b!3#0Y%SBP6ray%jWxzqjqI+>P8+3#`LObq50&!5p#iubFp=i;2dX^h3R1l| zmkr_!W*nm%ZLhXs#8p($q8(+}?K(+eGMP{_f)dUz)&jg!^9_O?_~^^%YXO+yIZVAg zp1xmI+rWL~&f5(ZB^OB)5R?TaANEdwonQtwY}3Z%vS}GtF)Hqtz_?In^LCLq<|dsT zk{4qFlcZqp$gL5R34J4%8`opjWF&Frj3OF3yr=(ge27^%{V9_$6`q`vdz|o1bv1YC zM59z&UwR_Z9-izXGH>-;w?I%6aT>V}4%BVV9Uol2`6nZ~S3cRL3V7U=otorBs?bzP=?;TI{#N&rg#ADjGc~;i$dNH$arklvazd8LKL4&3oPdNI7 z9ro`}`xQ7Bl?_k^%&9f*hLsQP{Fr#Aa3szNS!A_h%4G5Q#^CcN5y-mf^j8xH3116Y zggY*N)*|Jnb=+ETQSCV+9e zVIj7Cugp}P;|NVL_SZ5YgCKYG=;5!b<1=ZjicboCv{nqSt&#M;bP)EF0hNR6&XyIZcbiS(!rhnXh4f#6u0lBVrFC&TAdAv2Q57 z7R`BWCJuIY%`o2@X|T%B#)^czp(KYeaM(t;2_-Tf?dD%7jNF}*pf}2YR>wL&!0bw zoqR`LzngFVaLzOIT_|2NC2irDXQ-J4O)OHj8Du^kRGmHrPxu zQrU66;WT-G9|w6aH`?uPHyEF+97MdLO&V7|xL6}}k)2OGdgqn7!g7^o;u!uS_ilNi zOTccL{#$~I%dDpSauLI6T^9^LYs&yU{SUY2 zkr5HO{zt7Aby1_4kOks%Crx>NlXpd(pOzA`R!IIaLuqUVQt&k4RCW-|<#(@J>%n|2 z4>v}kdYeiH-&U8MaW4-)xga*u-7ho=p*IS$KM1}usYh_45u^^~5vRh&s(yUSpo6>9 zlV?)kr%$N3|D2g|pH^hTH?T$0@f3ewg}$GXbI`$r#b@(rE_)q^@dXV@gY|f(h$pM6 zl4`B(6m2c0!K#F1rB%mq!Q^9I*mkgG2AkztBcCl=pombOKQLi73gI|5l_6-^U8Ek9Z1zPrpTf|XDov^l0x6md?cBrWgrPk9KT+h z;qBiukt1Zt0?TG*F&g5QM(z(2kpVO|HMwro*2fInf9(0z8sW_EGPnezj$1sJ8`I4&!aDiq@!=c08E5ZR zT2V#Z5(-v$sMHWH9^Sp)D{(yM-ChV)@qo&-3cEFk*8(`-(?0`x#-4Ml zt?qQ5oDTJi)=YX3>F|y+r*T6}+AW26)2FjEvorMx5+jk<@hG?v^&6JOF%uCG zv*wlB@3d5f4N_Xd+=N+@ieA()l{A%Puv)H#aRk{*i+rD*uD7 z`y(Fe*aW{fEhclt7mVC-YUh$!v{`XA zB;89#4qRTyA|oRQUE&mxc~JQ9HxnfjF^5Nf4Bg;F9Y>#ib0b=t(oOV)blpq%WmN2K zJ_OYnO)7-(-Z@h17oBEP0Xi8foS_ERPQ-M(J)Tw5e$+<&@C$9=XG!z8^f-*&rh^A7 zvw^Uk+55_}ZVIk2lH5{A8z`0=bhqcU0=vAp_-KY)n!fS!Ee$B-390I3@TrjNsw0>j zRysQlJVDX3>%996{Z4^Ac)E%e9I4fa@-kPeNOKmNKg)TpftgHSAz%q8l0xvI>4F0Q z$CvIPH1%@9)U?Ir-MF-Br@rI@F>;=qpEhz=Jf`1KwQ)Na68RG5WP^D;*BATO#>}!> zCnrdl0`WMYDnwMSZ zj9$zQGWt{Dc1sQXiWET=jrVFk#sIt;_q{)CE+hcbH;W7_S5&A>o%02I5BX(eZ033@ zaUU1Fx=E`eMiR#I1b7JFrx3jb;oPMVeQ_@VwWbhpfNquHj#~@RpK92BK%@`iW`bAhncG2FyU0z^6iF~6w4U&8bRSOKb6D&Zmh zA7wd3sq8jv07fJIb8_A+`#{JzAhT^Vzbn~*#fEk8R(F}8+P4nBlilu9PU)KJ5na}I z8?*(K4DP5;sBT!jEZ(PF{QZ4o5I82)5evADSS&;M=CO_V4*Fo?bpdi!zWxiG!>mt< z)YfRWkR*Sy=Y@|PqszmUX3IW&_djJ`dKEZ4ysQ#l`$JCMrc3V3D&sv3D9%p(6#;1) z^da={3N*Yl(p?={^!*RC#c_a5QiA$j+MH+QyNM)POMuQ@3%!Goxy7m+H|*@Iqe45m z1h%2o6iutLK-D|{FhS=$8g)Y<)N(U??EHfKG)kGYjF``4=?qbhTLsvBw8VN}$ao7G(EBSuPd8^q&KNYpwY{(pN zote)A(zR?Lu2~+auGS2n>SiIUz%c|pp1d4MO8*t$++vX$pmxoeiEAi`n%3zuL!nnY zHF{(NxPISLVh&&;Q~m*DOBp{o`65*$+R?_4ZR#}!B74W_As1^xLDaLu??vIN1509M zdFdE_3vEfIInxY)5o|RleW?;<3mXNJgifk16OUlCyiw$w8K76Oq0i*YW!>|;)lU1= z{kD1A=VJi<$Q)YePP*)+Dl203{#npa|EW>js-DY|-Q4sRcP_o%9Wwo?S3-_t2Xz1+y^q1!X?!jcJGMXUFgd6ocrE~E% zI5Jq)almWMWhrLMj06mr83ndf8hisG+W+x!Kns7E%%XcPok56ggohbzm7HHaBb87u zR*->KT=td@bcZ#4@;LAMrgpVGbL$jHpzJ~ciqrjUr@pZ`!ZM(|SiSw&mNJU}_lxce zkm3W-4R%(8!T19hK`6A0&d+K-4u|mI|9%ZreigPmW$WLatED6Ush556iQO|M2;iTM z{G$>ScS?|~#NMOtIKZqQ2mR?>JO+#a47)W92L=V|8(!*LE>Q5r%$-=7>sbS)B1HS5 zon88ajI^Z&L9XnQbm>r$-rAHOqZ6S&WK6EO90!akY(*y3KksEUGtH@OXI+DmKR$v;x49425PX4rMRZ*A<^i zxnt*1xKAv8gmmYfnly2r)$E*sne1{Hb`lrIh%;4q75eNK#}eUGJ{8P*%~BD)9S2D| z8ZR9}>3aDktCRjrcvLxJD9xh~o`PIG0S8}ZyMHR~piH((nKP}h54_nV)%`OC03wsx zUl2uqJ0ZfTS==_|8Ni`{wCM9@w?mz?Tf|%^q0PuZ-*{3j4Wvn7|^ZD{e6@w5?Z@_*-t>n z3Wz97Jo0+wo<%cX%S=MA_p7?a-z`#3SF7JqcSp;YO>~s0kfMiX0jgr>QD)TKTO8(R z*WViI)m$Si;F|i13~1=4E=`{4yV0t*8p?hOG8cFsP1ZXD#dc;BRd0@Itu)Ya;&a~E z1?oHT!!avz+}1RuP-yMG6L6All&60RsvGL7q6g{Ii#pTeW4~kX5o*tjdo;JeXh>nU z(^L2m&Rr_1s)p0GGr>gPB>S~x*wawH*aEPnNe5qAEa0~}(RyVWKdzZ}{`1$5lc*oI zf7~*-Q^O>Q;=)t&qeed_=%XNe`_pakbidhvB-DM(9X|}Io2z?mD5T~;eBy{+ANjhs`0O$Z{mDB32EZ7Zl{~^yX#_n{VsW?X zQ|^f{G@E2aoi|y{z3yI0n)cGlr1#Q<*mn`UUOv)uRhc(zX-(Nw))6{Qe^jqR-WPfM91RTLKtJ|-nVu3}Q^fq2nY0qB&44vpG zDv&ibf0GE~0u=redP5%@N1#g{Xi~JXXt$oY-52B9pE`Di{jz>&afB|i4D?%5&#gNp z89IVv4VW|-$4sR;uXnGE%ZejPeaKW~X&`rz&%~RtK6h8<_~rw|C~VVnnSyujkW%+9 z#`s&9l@{762&@(?Zj?~tf>5CtNOUdh5;*)?=dm*SL0T@Hl=p*pKo23J;mR?x;WQ|cEpZ~11ag2Ft?OuX6a zI^7l@KtYSc4S)vGd4YuZXi zyNEsWN06fC%G~GT2%6BBgoC5BB!l%~F%Q6`T5R=cj^`^k)Qsy*S3S`y-=_!Ex2A52 zO@?8j(9i)l`?&W|>#T{BxYYQ(cO~XW%T0e1<*BrUysC!(gvTffW(pKn^6C{ONT9PD zCfZ`SS<26>&9RO2d~{@p!bKggH2woVCd2A@T}OPDxH`&#IjV6*FxY&}q?+k7NNVGP z+>+fri$=}#aR-SFUT1k9hWEsL{l+*9eYC`WCl4`TkbXv!I68hwC7_u2kjUM@1w7 zONt=z3JFL{9-q)<&PN;Tx+bIpSefwQ8ubDUJcea zc%0GNP%z5G?fY1~ueqr<@xlH16|u`6t{x|6Lk)o{b}1U7>cE=>0lo0VV?q`F?vwyM zcNG``%V!9Tfbs+T@)`-cZBwE~QG28}fo0_zWGI1skH$!r-BO&RE6yYEDSATd6+#2H ztAV2)j%7#oshnUWP`D}KMV4C`NOGWdS@WKhW02f6vh{j#hZ#bD?Vku`8zo98&x5Ko z&5n)B>GzY7;Y93{rP`=|X^-XlIT|0zzJTzB874j0mgXE^BJ6acm?bts=wVbu+;Amd zXVniy?F7!ub#p;if)wju$hHSpsXR!Grgs|MKJkbOb~Z#BZdEDC0-95072WGNkaQ%r z{T`!`T9>k{IcYEF*X9Ub`N>>zx)l+3@IfGES9h$^MR4I8$Nnv*`;>dkrzq%b|NA*@ z`nDoR;_1Hri(4F^dMK>6RQ*k(!)T0n4270mrXR)p8by2>@fZ8<~g}=si+)p z{VZTrd@{N=rI&@kb&>V+x>6kUSKZI*!J2mS^pu8#FUOpCR)E=wkuChBC2DiYYShd5}{({R_0k7`euH)mAComO?r2 z+!V}|-)VZ%)+RD3dfXAq(RTAa9E-_Ajm>Z%#+W;HP#o{|B<4m2Ja?(+fpfeX7$Qd>ZMff&njK|p}^`shmJ`l@LC z-va|`A+M3)A?o0Vgy4sbDSP<@uy=(q!cOvYZYg++`FQHYMhhj!d#_WR*H``pZm{h? zo)?+CVX`QE*Z8&Ld()?xPT~u20t9?>6^Tyn8y*St#JPNKA&#iU1TZ9&Tqb7Wf>9SBwz#9`etGFy z(7jV%=a%06!u#4oQ`psW0et^}*(2WAtnsZ#On7f)O;^l3g&qU;sxMuIfG9nFCA7B6 zTqyDADLnD}PVL0oQ^c_*^m%Ze0;C*jVXN=uQciiz!j3W)LayE1`{8BvIwq=rN73Al z$PAQz2SaHQQ#<$W5s3AcqhljpG{Rqg{<_oWdOMh`>;f@Daq0CL0pi?~d5|*>t6?bO zunLa>9iC`3v}Rv^iQx;C><309LtBddlr^S3lw9@OYE#atvAo2vk7z&t0XHMFOWtPY zM?qgSuey!?_~1MGt8(4{@R_{oBCRU^G>@gdaM9Q0I#I4izs@4OO!F)-G{kWL>Sak} z<5ROmN7)=i|BDVZ0`z)16QoxyO*Vzi@L_X+XhySQsA(M&@Le&md%SaCm}Pro5YeCRXXWl=i&E+4kzd z4oG;}a>_<&_Wa!Z<5^ppzrR26VnuhiL^p$NuXe$~wV|&K4UV8~K9K>$dg7~=P7!@&!*3prd1IkZMx;+vzhr>&=X-2Mn>9QuJs5qYg1~6P#ydI&fiAV zNl>c{*{wZW7Y8+4d`QHl3?MgL_7=oD)6kN5q|#i0(c9IhADX01kJ2{B4Emi|U7F*y ztl@j&?GH3y+}V)Op%e<-P8#^St_{%9t2P?mfBggKIarQbgK_5xc*9syYZ2wu9I2`z zn*8#67mZzA$_C>(s0JqjW|%lp=18!OB)0E+#8wg;7s| zJySZq%Xtl`#@hU7D|CSapin9)-E`NE2;0*!PHnQRg`faM>#bCmo1}m2G2`u zw^*PD%+Acrz~SP7cNe6*){aZ{#ogWAH8psJx&=hJVg>E~{?A#`P48y5-mx!?@E4vP zW$YO9*<^r;D&&fds&iZiNvWSsBE1h5UplY1dHyX?&H8{OPKL7rqO$?CLQqwKq6$cd zkZ=X>ommBdIP8ze1`qEo*^Na^-!!@_MOos~2>&qBAE=5$?)Ao;3XC=r-=S(sP_vV9ll>gbX+wWzBl+Q>nz`USY!fm>t`e^ZKDWl$3-{O@;Cw z=@YdMEOjY`(^AOn#>ugR3|6$g(?j1q>Q4u30DW&q`%DQNhYUh#VWINILAP6Z_p3Y0 zm<)xE*uYn?!$4?rhfRxsPJ;t#H39sz+ z9_}@dcT*J9MOCA5k#lKI%yWPCc)J1=`2 zZ$4xX%o4b)ejdNd%X|OGxz4-MYbVZ26>!p{9=NZqE`FH|>P>`V4<#TtIx@s23NpnXloko+xpL#J^wWi7%CO@ecVXHb~HT&E0O9aY2$(2|*Whl|UbN zm(j!EoBhE+PUO*#5aJlQaU}iFljGdPoSLgH?6FJ3b%4K|SI^;LIPPd;uUJ9fzMrMp zs8d$gRqq<{R>(+m_v0b&q?mR;P)-OYC7Q_4tw)m|6;Z_fo(6EMaP3y?*l1ED>J&6@ z$3>f)Nw-{tWUu$jH#9=Xatx8>kSK8f6JH>B?01;AMiGz$u8sLNx!@%Cvs4L)_7Hnz zS;X{FN>Gcu?YfCva*k}D`su#=*?$|NZ4FR~sz~+L>G`4}I!);=*qr(K%Z#{kvvIbz z`-zI`bqNK^EAu}r1mER36wCDT*sG(zNhe4=-CXC~cXh3W$Uk{3q&}(UgTVX}G1hjq z)6X>^NEht9q_ts3HG>CrpY61MBc>n{`YR#bk*csxPEPKdn$IR`fSpgN=tQy(9h{p; z`CVYc8OlPBld3rmS?eL~xLCD(hC!$pd;}MfayjU_o2$Xa(E%Ra*6esg4}Qc$Dddjw zR+`L)U#58yGk#?Fn0RF0Huq#XM2jSXk|Xm`VISKlp&*Avu8k?!v6H=&iBc!a0(n>G z`Lcgo|MWsXlu8lZs`BXQ=&PED-BAasbf+`rb!o70#~lou#zUTHzy71K+t&1CV6WKV zkT6E#rU%dKcx_yK*x(2}G@hU_BHqaV`Xs=I#aiyOk7Zp~a;9~W|C+?4{U3eD4}s_1 zeTwqbsZr1qt6K%fa0@)|z`L0|DiZE?@28=QC!ANi{8ugll$w-f6GG1Gy<66Hy=z^@ zrfql10KMvq%Di_=N*?_l3jDx#i4olUSj{tW9?r`u`T`lBd|kc>i)vcb6Du%6hGP4H z`Xc^U2eOeA0zcb31Bbfx#;>ZhT+^F+_BX$Jvv+hsJMR-}I`5*@1OCbNWz?qNTRPzC zlp~Bqy1mEcMW-upXc7W z!VKH5f=zB8k8$2i*)zT;AYFBcU}pHLK?vjd9QAuPU)=n4D)XfhLL)yze{rHw`IwEv zmgNM~Zc+6R0z|EeHK4#qpwK>n%v4 zp=KYt-T$)JbezR3B@G4On{O?ClA-LUQ}YqSK3DNA;ZKA9(j21nHY(=PS*$g;vRtwq zWzH<%vEtmVS36v-{VkkN?A^ZErb_|~WhxtpCp#4&Sr5E6cJ92K2dA0FhY@^*!XQg$ zkH^8s2tY_&gVI;$Ubl9M6@MwF#4itb-^RfmwNaPm@>40|2< z&pmJ#O)vS_56H_nI|n>{TZdHV_5PLPWCP6U?Tq?1l@{hcw&_`1Ch=P3pXv&8AJu>7 zy>NOd?r^!UdmMC~!Ib0ir*V&Wc}3aw-MpSmY#|nUu0cpaw`IM-dhq$OL$Fbk+kkfW zt!l6-bQ!o?sfas(yphw7z4_Q zGcofSt`NSErWhwS;7l9bvctiTSt z?t^@uAFm|?mseI|2L$q^%FadCPUAU^?!B*WHjCQ5jvgX|Zz>wTAaT}6Eqw@<*cP>n zS3B0Jvy6#?o0;nb<-K7nFxl7e(v2qEJG!dBhw~A@+&Tpv@}dm5BD@ylUg3#fXjBm_ z5HuPG5Jf=qJMA68pL2@0zXge^aTZMCvm$@mVm75~_c}hC6eQ`Q6!kh-YKWYXHlRSM zB(9n-LGR3`*rQ?;(dh?{y>rq>ZC`{~G2@khaSvdT{x(!x{%4!RAr6QW8Y(>^;u=4$Q>Ky@K%Uj#8mo?f!Lu0FrDOvlG|(; z8iw_`?$=o%rg;3VC%st6od+R~#f}&y2W6FLtFGh0*)Q@ZoAL$44;+~$Cgzhp+uew} zc8*eLyd3b;YPUeQU zsTVTjySZH_4j7bE#U4)jG?x&$T}RV+^7M5jfM;wU@Jgt?Bl-b|5!F=k3EVvEV64rX z1PQN?H1SHHsK@#4ru=#d^9cdgdNbNMN_ig9tQID3(+U)-ZQh7xiguW8qLI_+M{GHp;Ure5{u#QNi10jG?Fe&`JCvbQSoXa4Gb zL0mm0xHK;X$adMeBBbmzl+pJ^wf?bHjSB17(S)`lYDjh!}qV+_73H<@2?7$Cq?H;+{5Xr z=G{E;&F#QsGWz6yL^|}DKhVRZ?m(UPy5>^ezh||_KJkXjBQD?Z^CnOiuNcqS&av<0 zSM~S42&5LNnoBnsC`E~3mje~nt8ks%Xtzl>>b;2o^r@4?;^S@lU6Z}>-Am-Ige{#} zx9VZg832wRX$Kcixeiu+HTQ`<^zLQfDk09DzI&$65`FR%5D^U6XO-*uOt^7h!s9oc zN}S-kVAXW)jh;vouB&ASadXTgeo07SJ`p{&AF_9}e9qwyGRMlF`aEo+U4-cS z*nM$X;^Iv_Imo8mzK)Kkj>#Q-`{KYWF{0{4T&<6)Is5Pz)TyQ~2JfL`U)qQX58j&i z6s$^^aTw|dc_ivm!9E+po{8H;SQDPV-FcgG4+n~&i(xwnWwSs$Sm%@mXb^xL4p zKFO3^S|MxR0&KPo0Ig}YzY`z47eNW&)*_{z zO-NpSfA7xq8EjjNuq*-7*M}?D2m5nOkGFYo*#Um*$~76q9CYp;s$3?%eK+^d+J*sc zr)>@*Z6XFVDcR8P6Rg5JygYEF!$(c1g6Jl{<+8_=HvzwWh{mCgrTn==sg;Vp-$f== zdR*Vj5)~!|$GqP1q3VUzMj?`B<{?;AKEFbE*B)*BCxrY5x^)3`#52=08(O8Bq$C;6 zlaJ@|0uIj=&xo{0aN$S9(TfWgL~1AJ?3O2H-!Q*dHI3w!Cf!Th!c-|$)V?x`d$wnw z=hmQ`&NZ3>&;v${ileD#_#JdWyWv^~vu1vaa!{ztPg6>eEuibBH&)@Vn{sX7XDHul z8eIYOF17vV%ck(l%is5KRK*KMZ&s5x8bP!IcOXF_K;BK{LQsk`{a$;ZSS}0J71tcQp($v zNgyH<+xY%RT2k_d%`iZG$CV}IxcnyXdrB)i_ zj+I2~+7?@X=PS_Ci+t+jN*$vi0KHoaI3Ksk^(}GN+WGyK5~9a@)Uxm5d51r+IywYE);LLiGS8i>gQ#5(KtY3%vA7WBz}7tYy_pBlv3RF+t^ky;%bx_zhn|Ha}wnaeb~s+|{$N4sM~&fw75IWFQuK%L4e} zcw}N!-DbX;`bPKnIYaSj%1IYG_0+Ulo&)@^ZgGPyZFKFv6MU%@Lmy4N6b(h2{dfPG zKHnuVC|gtV`2Lyp4t!p4_V6YmTV+ql6fZCf+OmvnN>fsQ-rn>4J1@Bt)p1a@{4_k) z^4Z_dQsLtIy1~d25}b!GdQ@P30?&Nf-;9cf*gbr{j;IP)0w*W|#_H#4A5%3;3 z=BHr&3eY>2k6#WD2-*m8NXylEp6NqZxM`Ni{T3yiTwR?KaOtUiqs@leaaq^$_H2t5 zMsSNz^q2C55CpiwrBK2Ir5sa4Ol?y}e6e!`nsTV0KPOh9$Fi`<#`r;6Mhrtzcsj=* zlmNzxT9+b!aNN3+i^b9M>xV4bT2S(3m(9Uif&IpnYs%sIo5o;s2o%b98jFA%PUMJM z*6S)I;i<>(S+f##Fj37{+LNa!wE`=XWL(O!Z561?S{17D`6ai(X-vE)9Mwx#Oo;e_ zVclc@@Vx5rfd}ri!)Jb5YQe&b9Pd;S(dFQF`?<-Ws|E#!&@pFX(`Nh6T8HO&LZ5S- zBB*n~pV~f9Gt0D%Za`OaS%Oid^ONdrCUX(t?B#=Op8=!ul_BqR4JwnXzi(GA|2k;; zR9jHf14k!#{i z@|fz}PWN=R5f!7_~kZFKlDhQqF706vq5)W zzWl4A+Lmo|z|~mr<3g}80^v&Oy;|oo|2bF~vg;n%D1HU>)DDIkHQ0FSD_aw*@79SZ z4Hy;#!jFT45r-^^`-2AO?ni-H7li*BNgZ?}`_}m435&x=-TQE|^z9l&#iO76W$+bH z-hR92o9oEMpFQm{j6>PN*~{nWpeN3zxMcJCU)Ci~0%Il(ob4YcKPvG#LtjEZVg0O3nTvVn&Bm1tr`|Im7w0K8 z^HF1V3=)q)2k1p*&cHce*kb$%!3q+=^3aQ293feGfgRlacS5w=|Nan-(&HxvQ#KcP zgh++`d0LtC<-&J7+i!Pprw@gXkB`@@?vqZ)Z_3wSBpv$ViMm?F`%6*YQ1Ww z{D1(^DPbN_FK>QqU89%3{53^#)K6f>`u=wFD{a!{>e@iZfpnNxT(=O7J&|FkLeFle zR_@_Z5EVRwZBC$9U+r>(oz+OGUh*^)(}7YlHSxFpn4YJ0xl-?3+?~+MILpWcXFj&K zN117JlK+w>PU0@m<*j9<`tPC2>{tMD_QtTMSusD;76Ul3}2>P|H}V$dL5J z$IyXjkLJILM=5n8J8nZxe*7E)Wo-tY?eLqmrW6CULv*pp%=|p);(JL13Tg>+hWKW& zVsUPc#iCLqZqTxli_{We=6{NNWh++Ry&t0bt+X*qSopq!8P(snv>W?f!%;V(QOYToVm zks6!)q{eT^-Y^^y(j?(w;eG5mN8xrYmT&GYto}&U5*inf906fyMuD4K1i_LV)KwTZ z>xs`nu9Y~&J~cpP=LdyrIRy<91}>~#gh3nc+f6*8X`@yC0^ZPWKxvJ2FlX!Ga%33x zpm6K^5*6Ay7m;T1I>S)y`ofHuYdUcCXT!OJ?>j>%hvX(A(Q!%#&wvo;L22c=6dr+9 zItbw5CAF_~D{6Z& z@nbt*{Xn1-F6v_+fXr7P1XuOF8c|wJygqvjeJV@p7w>+nshHQuw0u2*L|Asg&b954G6sI5nW9iGG}3j$zV z8m~Zv7Y_FCyw{j(FnYUvZo>1R^yPGe4?w371YQoBZNEV87`}sH-4HIc8gTh{_7W_; zLPbgnLG>J-kE%u2>=u})$m@-B)Z_J@bk9#Buu&l16;0@cGDo>W`rUXFGi=JcoNwd!*ywo4!|c8oblu2UNgs z34yA3EZzlQ>#TH^gq-4FTJ{44{=9x8kLnc;YhS9^!!1u}Cm1|p`l>;Pa3sRa+^@w7 zAq;2rg=7SS1XVK4C>#BtaCORe_C$Bk7EHQ*umS!{!DHUcPq^;{ni7)6-LE(3)(oDW>M27xe{1MJzhvYO%gsf~wV zzKwNK-SJkBsx8y5zpO)?cZuIuIKISM8VS5Bm#<|2>Hpbjma0L-qc;&C$DqpZIf5tB z2!yO&vl}OPa4C7?$mYs8`khc=!}szphtB*D2p@1z;+#KvkF+Zp0cn?G?3}7E-cNCh zdVOBcR1B({4_yqqqF?eQ+yxH>_`AAsDJTFf5I{TGkhcbw!4gCPqiju?#tnzRe zVTj7H-~+wrW^Sf>6JX0osR)-%zF8|4+$7 z;gh_y!t1AMfLT(M%O5b9c$ra1{{q_-CpiWrJpfNkhFJ)X0z> zjN*#>Ly5Km4|wBwFn0r@Gq$LvS>)f9icU@=d7o3!zvPv^HjT$N4d+}`X+}8nA8;gl z5D-dCSnmWmU4H?TEt&>6cA-mtTV@DF%v`;0Rwbxa+C;bh&(ce!`69)y$qZA}dyw>U z2d~5>+7c87rXm^rXbnT2D0=0IKi;bEINP(K$(BoTF7hh=v=s-ZtiMS>t{woO6F;ms zY=GdRhgTp3xX~kviD&1qA=3sbu}(Y^Dfip#8v(RbUVaDCWPgT=eKnZ?vaMB|I)oxb zs~0#nPncNs2}(b_-S;AQl68y$Uluy*5)_d4_^#*6^CvuOKFp^%v(|lIvCp;lzFvdo69orPP+W`B z4@zaB!K`$A^H2W!!6L>1s?nb7;dtc>%{qCq&&VF58$kZAXgLwGhzTmj;Oq^-&Lh6*v#Tdxo>Z3D+E&P# zbdXrmWNdcWb!GDPWnP1aWFYSj`f;OaXfzidTalnS&2S4Tg~f(|z=QbxD+*?IQZXeQ zoy)g>^5nA^>@6!~bqU%7Bs(6O6L*fqHBxgor(g}>=3dlu>|hPfaHZm^)2ffXgh%?D4>-FxfHe zyj%C0G3!5uW4FpZHs6_!{+0)Jj`E4=WNxkBhg7L_CvORw2e zHbTEEXCg~FqU4G1n;wTDmPaBbX@mCly6+wBgk@Wd6c<)_l5J{278|jIW#`N`J?y(O zPsRxp7SoBL%6%cWq4aIDngkv-tbK4u^GVqgFEUBNZhW-Rl(OLD#GwL5kym*0*T#vBmh&hYFWM?8TeZb;=9^?C z1;G_E)tGjlNroXusN9+a4eH-dvuxIzoE-b;k{f@SSo{`jKa+Uoyfgbng0G&G%GiSl zYFHslbl-Bi=Lg0LG49T-XjT-o$SutP)SrV213$CaJC?> zZ*4U&cx>0-`}0eNZcL4lTKem*#qkGr@GhwiN^{paNcsEktIKpoS?j@lHsULq-th?U z9=b=b2!a>Uq9hy_#F}=C+#HwQDK)c(N9?v`yvyrXcv8MS}11=qfJ7C zx;MozByVP2X2HRRe4uF8j%Kt^Jifx??xM3`wz&%{D|#y~csI-yHG`&j9iPjMc6F@4 z7F0knCWc`O^0hS6XLb$!P&CSX6 z7Oj(I;R=J%p_{o$WXFa)rvpG3tt~prZI(ruIm>5_Ym_G+f*Rbpgr>x;djhVc*oO#S zKB-`}DfUFZ!E~C!#GR0F#i{%X{@=o7rFj&PPn^baCW#b$F}Senvv{AAHs}Z)^4lf@ z)+{fwVe4UILBeRhC}q|cF&f=4cW#-}_vz7*7SF4wyTIXLYgelsHUl_eRpg4F!saN} z_~>Wh2}DN8c5c%heg~o!(+jX0JH3L3$Ealw3zYjJFu8sdZCPij!iku~T~X(wt}uT> zB1VCLe7agc>h0|<(_BqqWsVe}-xFFu)4`>~jOQo05Tp0uyNk?9=g@g?9umfp@QKNd>#t zCGnj-B=3Z3ZE=e}Zq!R<+^=cmPG$^V>%t>D`kkryEa1;vgfk%bmaZr&YSmsxsr+e8 z4s-uhp%Fisrb{Z*hPh~?izI>y>t9|@7s_7z*>A3H(h9LOB#~h|1yf+C-F;%)*-x(T zW4pDeN?K=pB9s=H<(uX^L~YK5>sYH*BH>-#m$O0c#_7tZm7*lf^Qk>VU7^#3>H!nk zPSaA}0`J-7=(X*^U~0Z~z@Tx$hT5&^;8O(`C9MBO6sZQ^AorP!p0wv~d-4fNMovW^ zshC_#OjS&h{DCmdCQYM8*prhZ%tX>8(rbDo!0Y%5j(1IhgiAC@9O4B>a4PiY-(X@ zFGcpHQ*|cZJ}Y-ln#_?NT8DR~2g3m#uDKVaik|>bcz*h2P+N_n}}(;x`Do2wtGpd5@m?2vYzzUTQB}@znD_E za%X>Y9j>EPEw=y8GrRzMdkIHDWyz55eA738O;krk839+P1_MyNHK4~;yuCgxaXACN z?o0%uz4qOIlB27rJ3^Q9&Ec8dpQSTwWe%&o+(*J$WlJY$LnBo(gU5B8#X0m9spvm& zaXmAm2@y#SA%1z9zZUw#p6wn3L%;7yj%-Gy+{&%d+lJNE)k>}G|9@!f2iE*@0-ReF zi#l=`?sw;coXQ*B?Kdi=rb5XnfoZXozc1vZzVwDjpW-uzmY^1$pU z+ATdNwc}?E$L@>T0+0Q#h}!dpq~t`OCB#G&Pxwv1a2saOD!D|Izi!2ugdW zoXW@#IC8yyj02mo<}?4souy^cfCcvuhd_skto!vQ&8$pJ6|WI6Q*+#o!AJ7HrBxfu z+MG_eKe`YDPq7~v0DVH}?5E*DKzSH+>;Qx*`!j|HTzMzVz91 zdL9vUE!*a8^L+{%iY3!`mb)H2a{M4THtJYp`F`eowskPSFk&k!skK1F7(F@mAi7dX zN`H?{&Dgv)0fY)7eRTB? z{zimDbqd3WSG;UNe-4c%DXsx9KvyYd5*z9Q@tsL_do3CFH0ub8!g+& zOiv{*FV6n0R*%SIV$UnDuKu8Eh3`H?0im>@|(rdOm_9KstJanG92 z1ic2poV?~A?T+6?r%zX7a{7I`Z?CT2d+yPp7Xm>UTES=SKVv`2HRoF3)1LjaB%1us zhnLrCTxKtO=%QMUz^K3lDuwaHt#OieEB8qCic!ICBR~y*U*#G6wESn(phEWRH@4f$ zldXxXKYvmhbDk$`CWJ%Z8?Rk&OHG3k5Gtt;U7$PTXrc3c0cEREMO1z?8AGiF?>AzM zuI@a&9Bk}ZmGRqqlDvWlhpvm+)JywpV?a_AUvKjIEOc3Q`|pxv+| z_h7Si354<0dGpJ#txOZ${0Fc3&DhODE)EO9Pn{J`bE}Jj_oCUZZ4Q?t<>Y$&_Kh3s zGGtlgymF+?-;9NrB)ErE{Ird4?8weWH zGu6Wu;Qpb}lcNf_8;KfC%Dixg$4gx(YYY? zKl1$V>$q%}Nb;11o?y#3G&H2$3n?0> zj|r{ZdLF!u!~G1TZnmX2@d4^1rA_|JvvM~4MiQa~?lFS^8>+aLJZg4Un}~*|ec>OH zSin*YAwPAVFJNa*Wwtd*fu!vqo`;wbL=YmV684nblr1OV46ul}t-llcE)%Yc@CzUJ zfT{N#f^9D33YY7LhaP*m zXFmZ2VHL3Aw_qJ|0C-B^AsTjsiV?J@Bu!1}?&0h7L(~^3vV0QfqVVtN%Ae1*P08&4 zBkaW-g8jnVbjtN6YaLunP1N-qhXkW&J$cK2D1~X?B zVZyQ`ClV9&`b|79hBY)>#Y|OSP6pWUhe&P*5NHN}do87u9tLbV;aAIRgUtsA2khjB zxb$c_I0AguJ?T?$Vg-MlpSSi!>u->oveRB;S0s$_ru$&{63X_oLj_}A!bARRp*^I_ z99;H#mj5)OmFN(kK&UOJj}K96@PDf(>oXo9e<@U>(bak znQFK93VY6JDlH(CMBp@>NF@ZEoe~^?hoc-oYZ2ntgEYQz!A@6V$~uHF-36=aIvl@@ z&$Tc)B}n8E)f;_@&0BWAu>lL}BrbK7{vAM+p!7cnaL}9Eot}d6S(3~i-}S%7b@l6@ zJdzh2?>p?bVAbKfYk2XLHT-e|q~xi@FFcjMM9`OBrUp1kLg-Cu(DB%mr@O8WyUXib zwXy`I#|LKB*vR_6t|>na`Ms6B5m|5CY>u|8)DQEiyI*?+Kzi^ve|7)R#@NrcZlWTJ zWUKEsTjQCaRX^TA1%Z4lR$Mz(3-zAUjZkYv0loCMlRtq=gTaD^Tcty{C&IUBH(ee# zT_0W^2hP2Zh0Q5ouMbCTL}$O5!d|y&G;i0GaQi!jB#wFaG51XB!r(k$HHcT6=XOnb zvZ-sYE`=h}%n#H)@8WNSH7~&8tjB@6k-y0@NSMbNL?}hB*n&2x0u3(1BTPcKpiilc zE&;ly;4cHIc|J$uA-A1l57UYMOW1ULSNXPI%a%3+O3{&^Af5I;R{0W*O?LgmS@8}H z=j4}xniU`?`T4@|oOa_M4`?^#=3U+G!V}{_NQ(w?FF+cU{y_o7iU7XDjw4T)3D_U7 z|2i(FF`CedH~XsZ&(q&Z~z?I+N^N&|{Kj*Tb4Z9*SoXV*yL9)sd`+NkeH@!M273!6gwV#*OAN z;<(X0DqZR8cE1x}k*J=Rq-nc*S{WWL#*nCn*>#ym%649_VsYtAF2U`uocGYkOoZD)hH^-(H8^2+6hW;u}XBtay)CZcl@ED=}p$ zs-$}FfX=xY_~B~gnSDsGZRO8qRH=JouR@oVFFUX-kbii&ntDz&k=#Ub_;2^E@qA?o zOI{!9F&VRNS73TOK|eiAuzP^e9^A&xF@abS6KydOTFyopt}}IJ#}Hi#M;p%Gr5h&J z+=|@;g&bepr~e zDh4?-ygA+dnl*7j@vwbOkz{UdT5FxSO$4>8gsTtXMeonT84SgJz*M>M&oF9}=FoZe zn(qjgaueM_U^|Ve+D8;`2xFitq8QeGs|_n$5tf@D1bXzYN}gVU(^Q^W#Uy4oLs!uQ ztQ+qno*zbVfOl)Z7f~jSD?z&&7fVjqW-zeB^OnRGTa8_{P=;VrSSSF*!em>`Rp4N~ zB9sLdoKYdRQP?@dM->1R0&=}nR7R{ain{ZzZHMQ^3(7~75dD9G2|CFGJ z?x&^y)Fk;5X44g)m-T2}mQyoTBY(6@ne+RjYos#!py4oob;01x)dNCNHleRnTSskt zQHpi_&Vwwul#WbK#SEL7l6jJcsN1L5MmWW)j2ld;`VwI7MB>&58=w%7tvP7$y03K6 z?e%ABU@-Tp)4AnuXH+S?1ggBX``jk!XP z5}vqDP9t2Mx9=Xj{CnL1L8Fi8Tuna~@+O0PkK6nww9r}mrQOL1ElZRkgw;tEl7jv) zN>JedAPiB^AOM(X0o5hVtWo<+WExzPhKinp4a=+-EOCQjQmw}Y4D^L4w}6X=EkHJrEznNI|STqvP64ZQ$h|j${I>xre-Q!-;tAA zvqM8i6~xmOJ1uPS934*yh#-Tr9U3 zG~;3)>0#OKW;9u+05Ue$Q;i44===lgDC{Ui!!xesZGLu{oSB(U@FgnYkfgZFI#L!a zAG(Hu;&J7n^w8P{yWUG_rIV9S<{Y#6k8)6Vn&9MMQwAxD}Mg_ey3REM+5>-rW!j6uhtt z42*Ivan95dPkr3*pN(Pa9?4p=8fy^O=Fg3h{e@;;GtNQH_ZA#TzjtS!wBQaKD5`a) zoD303c@G}q(th#cz^_Q9XLp1mcoT%WPp4$lSIp9g16=ZbP1DXEDF`LjHKDheE)xen zkjCbdYBMp5>oG-nt$2cpRb)fZgtiFz)_q0QR-xy&vkyM8fwH}hEiQpn|l znK7oS0^UK$TmWMD?h`5`*NJD-NuX0W_tav~ z1gMBfQXWSgk4HXE$6oh2wnyfiIJZo6m6h)-95Rpv_EJ4zy*)V58yVv*4jm$sf^D&M zQa#eq+Y%KP!Pdd_Xr%M}!yUji%w&-ttwC@~FjxGujVyg^Ky@=A;^!A&_h+uMuLw%S zrUY1x*w-YIb^!Vh+tuLg9^tV+PU%p;3Iy>jR#V}Oq*;P;2zHM2z9CpS`C^|8H@x5a zU4Di9#&f|cK;s=DgK9~SIAamBAv$)o-y=1dMUFC-bdUKQ_Y^%HM!p@}{rj>2_P~b9 zR#MR>iq&UQl%4pH%S?nN74MrOTa}ZZ9>w+kHom3fQ}DhPsbp~b2tB+@BRL2E7smY` qxXVrnpl&39tpE4EC~i$6u(2H9n(+k4`|SSPqptzig*B. +################################################################################ + +PKG_NAME="usbmuxd" +PKG_VERSION="1.1.0" +PKG_REV="100" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://www.libimobiledevice.org" +PKG_URL="http://www.libimobiledevice.org/downloads/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_DEPENDS_TARGET="toolchain libusb libimobiledevice" +PKG_SECTION="service" +PKG_SHORTDESC="USB Multiplex Daemon" +PKG_LONGDESC="USB Multiplex Daemon" +PKG_AUTORECONF="no" + +PKG_IS_ADDON="yes" +PKG_ADDON_NAME="iPhone Tether" +PKG_ADDON_TYPE="xbmc.service" + +PKG_DISCLAIMER="Additional data charges may occur. The LibreELEC team doesn't take any resposibility for extra data charges." + +PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_malloc_0_nonnull=yes \ + ac_cv_func_realloc_0_nonnull=yes" + +makeinstall_target() { + : +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $PKG_BUILD/.$TARGET_NAME/src/usbmuxd $ADDON_BUILD/$PKG_ADDON_ID/bin/ +} diff --git a/packages/addons/service/usbmuxd/patches/usbmuxd-0001-remove-duplicate-functions.patch b/packages/addons/service/usbmuxd/patches/usbmuxd-0001-remove-duplicate-functions.patch new file mode 100644 index 0000000000..b9bd887cc4 --- /dev/null +++ b/packages/addons/service/usbmuxd/patches/usbmuxd-0001-remove-duplicate-functions.patch @@ -0,0 +1,184 @@ +diff -Naur a/src/utils.c b/src/utils.c +--- a/src/utils.c 2014-10-16 04:23:27.000000000 -0700 ++++ b/src/utils.c 2015-11-12 14:41:05.656507596 -0800 +@@ -156,149 +156,6 @@ + #endif + + /** +- * Concatenate strings into a newly allocated string +- * +- * @note: Specify NULL for the last string in the varargs list +- * +- * @str: The first string in the list +- * @...: Subsequent strings. Use NULL for the last item. +- * +- * @return a newly allocated string, or NULL if @str is NULL. This will also +- * return NULL and set errno to ENOMEM if memory is exhausted. +- */ +-char *string_concat(const char *str, ...) +-{ +- size_t len; +- va_list args; +- char *s; +- char *result; +- char *dest; +- +- if (!str) +- return NULL; +- +- /* Compute final length */ +- +- len = strlen(str) + 1; /* plus 1 for the null terminator */ +- +- va_start(args, str); +- s = va_arg(args, char *); +- while (s) { +- len += strlen(s); +- s = va_arg(args, char*); +- } +- va_end(args); +- +- /* Concat each string */ +- +- result = malloc(len); +- if (!result) +- return NULL; /* errno remains set */ +- +- dest = result; +- +- dest = stpcpy(dest, str); +- +- va_start(args, str); +- s = va_arg(args, char *); +- while (s) { +- dest = stpcpy(dest, s); +- s = va_arg(args, char *); +- } +- va_end(args); +- +- return result; +-} +- +-void buffer_read_from_filename(const char *filename, char **buffer, uint64_t *length) +-{ +- FILE *f; +- uint64_t size; +- +- *length = 0; +- +- f = fopen(filename, "rb"); +- if (!f) { +- return; +- } +- +- fseek(f, 0, SEEK_END); +- size = ftell(f); +- rewind(f); +- +- if (size == 0) { +- fclose(f); +- return; +- } +- +- *buffer = (char*)malloc(sizeof(char)*(size+1)); +- if (fread(*buffer, sizeof(char), size, f) != size) { +- usbmuxd_log(LL_ERROR, "%s: ERROR: couldn't read %d bytes from %s", __func__, (int)size, filename); +- } +- fclose(f); +- +- *length = size; +-} +- +-void buffer_write_to_filename(const char *filename, const char *buffer, uint64_t length) +-{ +- FILE *f; +- +- f = fopen(filename, "wb"); +- if (f) { +- fwrite(buffer, sizeof(char), length, f); +- fclose(f); +- } +-} +- +-int plist_read_from_filename(plist_t *plist, const char *filename) +-{ +- char *buffer = NULL; +- uint64_t length; +- +- if (!filename) +- return 0; +- +- buffer_read_from_filename(filename, &buffer, &length); +- +- if (!buffer) { +- return 0; +- } +- +- if ((length > 8) && (memcmp(buffer, "bplist00", 8) == 0)) { +- plist_from_bin(buffer, length, plist); +- } else { +- plist_from_xml(buffer, length, plist); +- } +- +- free(buffer); +- +- return 1; +-} +- +-int plist_write_to_filename(plist_t plist, const char *filename, enum plist_format_t format) +-{ +- char *buffer = NULL; +- uint32_t length; +- +- if (!plist || !filename) +- return 0; +- +- if (format == PLIST_FORMAT_XML) +- plist_to_xml(plist, &buffer, &length); +- else if (format == PLIST_FORMAT_BINARY) +- plist_to_bin(plist, &buffer, &length); +- else +- return 0; +- +- buffer_write_to_filename(filename, buffer, length); +- +- free(buffer); +- +- return 1; +-} +- +-/** + * Get number of milliseconds since the epoch. + */ + uint64_t mstime64(void) +diff -Naur a/src/utils.h b/src/utils.h +--- a/src/utils.h 2014-10-16 04:29:50.000000000 -0700 ++++ b/src/utils.h 2015-11-12 14:40:41.990644890 -0800 +@@ -19,6 +19,8 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + ++#include ++ + #ifndef UTILS_H + #define UTILS_H + +@@ -73,18 +75,6 @@ + #ifndef HAVE_STPCPY + char *stpcpy(char * s1, const char * s2); + #endif +-char *string_concat(const char *str, ...); +- +-void buffer_read_from_filename(const char *filename, char **buffer, uint64_t *length); +-void buffer_write_to_filename(const char *filename, const char *buffer, uint64_t length); +- +-enum plist_format_t { +- PLIST_FORMAT_XML, +- PLIST_FORMAT_BINARY +-}; +- +-int plist_read_from_filename(plist_t *plist, const char *filename); +-int plist_write_to_filename(plist_t plist, const char *filename, enum plist_format_t format); + + uint64_t mstime64(void); + diff --git a/packages/addons/service/usbmuxd/source/default.py b/packages/addons/service/usbmuxd/source/default.py new file mode 100644 index 0000000000..1a91d91ede --- /dev/null +++ b/packages/addons/service/usbmuxd/source/default.py @@ -0,0 +1,17 @@ +################################################################################ +# This file is part of LibreELEC - https://libreelec.tv +# Copyright (C) 2016 Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ diff --git a/packages/addons/service/usbmuxd/source/system.d/service.usbmuxd.service b/packages/addons/service/usbmuxd/source/system.d/service.usbmuxd.service new file mode 100644 index 0000000000..ae86307ebe --- /dev/null +++ b/packages/addons/service/usbmuxd/source/system.d/service.usbmuxd.service @@ -0,0 +1,12 @@ +[Unit] +Description=Socket daemon for the usbmux protocol used by Apple devices + +[Service] +Type=simple +ExecStartPre=/sbin/modprobe ipheth +ExecStart=/storage/.kodi/addons/service.usbmuxd/bin/usbmuxd --systemd +PIDFile=/var/run/usbmuxd.pid + +[Install] +WantedBy=multi-user.target +