From a95ef4aee4c5e3dcca6ebfe604cd02b5502eb8a4 Mon Sep 17 00:00:00 2001 From: Christian Hoffmann Date: Mon, 21 Apr 2025 20:35:36 +0200 Subject: [PATCH] sm8150-common: Shim WFD with libgui_shim/libinput_shim Change-Id: I3edb7b69b265240f887a6e43f67eac59f883fb56 --- Android.bp | 8 ++++---- .../system_ext/lib/libwfdmmsrc_system.so | Bin 77172 -> 94497 bytes proprietary/system_ext/lib/libwfdnative.so | Bin 90984 -> 117305 bytes .../system_ext/lib64/libwfdmmsrc_system.so | Bin 109760 -> 150345 bytes proprietary/system_ext/lib64/libwfdnative.so | Bin 140280 -> 222817 bytes 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Android.bp b/Android.bp index d470e8a..50a232c 100644 --- a/Android.bp +++ b/Android.bp @@ -6441,11 +6441,11 @@ cc_prebuilt_library_shared { target: { android_arm: { srcs: ["proprietary/system_ext/lib/libwfdmmsrc_system.so"], - shared_libs: ["libbinder", "libmmosal", "liblog", "libutils", "libcutils", "libgui", "libui", "libwfdcommonutils", "libwfdconfigutils", "libinput", "libwfdmminterface", "libwfddisplayconfig", "libmedia_helper", "libaudioclient", "libwfdavenhancements", "libhidlbase", "libgralloctypes", "android.hardware.graphics.mapper@4.0", "libc++", "libc", "libm", "libdl", ], + shared_libs: ["libgui_shim", "libbinder", "libmmosal", "liblog", "libutils", "libcutils", "libgui", "libui", "libwfdcommonutils", "libwfdconfigutils", "libinput", "libwfdmminterface", "libwfddisplayconfig", "libmedia_helper", "libaudioclient", "libwfdavenhancements", "libhidlbase", "libgralloctypes", "android.hardware.graphics.mapper@4.0", "libc++", "libc", "libm", "libdl", ], }, android_arm64: { srcs: ["proprietary/system_ext/lib64/libwfdmmsrc_system.so"], - shared_libs: ["libbinder", "libmmosal", "liblog", "libutils", "libcutils", "libgui", "libui", "libwfdcommonutils", "libwfdconfigutils", "libinput", "libwfdmminterface", "libwfddisplayconfig", "libmedia_helper", "libaudioclient", "libwfdavenhancements", "libhidlbase", "libgralloctypes", "android.hardware.graphics.mapper@4.0", "libc++", "libc", "libm", "libdl", ], + shared_libs: ["libgui_shim", "libbinder", "libmmosal", "liblog", "libutils", "libcutils", "libgui", "libui", "libwfdcommonutils", "libwfdconfigutils", "libinput", "libwfdmminterface", "libwfddisplayconfig", "libmedia_helper", "libaudioclient", "libwfdavenhancements", "libhidlbase", "libgralloctypes", "android.hardware.graphics.mapper@4.0", "libc++", "libc", "libm", "libdl", ], }, }, compile_multilib: "both", @@ -6462,11 +6462,11 @@ cc_prebuilt_library_shared { target: { android_arm: { srcs: ["proprietary/system_ext/lib/libwfdnative.so"], - shared_libs: ["libandroid_runtime", "libui", "libinput", "libbinder", "libgui", "libnativehelper", "libutils", "liblog", "libwfdclient", "libhidlbase", "libhidlmemory", "android.hidl.base@1.0", "android.hidl.token@1.0-utils", "android.hardware.graphics.common@1.0", "android.hardware.graphics.bufferqueue@1.0", "android.hardware.graphics.bufferqueue@2.0", "libc++", "libc", "libm", "libdl", ], + shared_libs: ["libinput_shim", "libandroid_runtime", "libui", "libinput", "libbinder", "libgui", "libnativehelper", "libutils", "liblog", "libwfdclient", "libhidlbase", "libhidlmemory", "android.hidl.base@1.0", "android.hidl.token@1.0-utils", "android.hardware.graphics.common@1.0", "android.hardware.graphics.bufferqueue@1.0", "android.hardware.graphics.bufferqueue@2.0", "libc++", "libc", "libm", "libdl", ], }, android_arm64: { srcs: ["proprietary/system_ext/lib64/libwfdnative.so"], - shared_libs: ["libandroid_runtime", "libui", "libinput", "libbinder", "libgui", "libnativehelper", "libutils", "liblog", "libwfdclient", "libhidlbase", "libhidlmemory", "android.hidl.base@1.0", "android.hidl.token@1.0-utils", "android.hardware.graphics.common@1.0", "android.hardware.graphics.bufferqueue@1.0", "android.hardware.graphics.bufferqueue@2.0", "libc++", "libc", "libm", "libdl", ], + shared_libs: ["libinput_shim", "libandroid_runtime", "libui", "libinput", "libbinder", "libgui", "libnativehelper", "libutils", "liblog", "libwfdclient", "libhidlbase", "libhidlmemory", "android.hidl.base@1.0", "android.hidl.token@1.0-utils", "android.hardware.graphics.common@1.0", "android.hardware.graphics.bufferqueue@1.0", "android.hardware.graphics.bufferqueue@2.0", "libc++", "libc", "libm", "libdl", ], }, }, compile_multilib: "both", diff --git a/proprietary/system_ext/lib/libwfdmmsrc_system.so b/proprietary/system_ext/lib/libwfdmmsrc_system.so index 528ffbe863ffd0aaa3168612c3eb9049e45cf3bc..541a5d1b79ab144b47d17f1afe4f8b3828a6dfd1 100644 GIT binary patch delta 19592 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 IFk0RC4<4zFmH+?% diff --git a/proprietary/system_ext/lib/libwfdnative.so b/proprietary/system_ext/lib/libwfdnative.so index 0f7cfa82e51dc10aa8bfd0c187a8b3dccd76e185..f105f2bbcdedba531fa72d6926f2195abec7152e 100644 GIT binary patch delta 26986 zcmeI5e{7Xk8ONV9+5zP!nNmb0m-3>=kE}%g=^2>0+K@$ z&)*?j3)h~%1tfWIITDbQ7Eg(5G@%$aa zwQ%kETR?JX;`uv-YvJ1Sw}9l(#PfFu*TS{uZvn}niRbSSu7zvQ-vW|D6VKlvTnpEp zzXc?RCZ4}TxE8KGe+x(sO+0^xa4lSW{uYoNnt1*W;aa%%{4F3kH1Yf$!nJVi`CCA8 zXyW-hglpm2^S6NH(8Tk12-m{3=WhYYp^4}35Uz!5&))))Lle*6AzTaBp1%bohbErC zL%0^MZ)N_=>Q^u5U;F5!Ki)F<#rtorKi+V^E^t{WX3eO&zb_%-o)}%_=cGxOO|K zdY))jQ-=q4Xfx|w5#;R+~Y+`napp&rP|!NEsygI(&+A|KT%eI>XQNkT@>7U^hK(h!bs&Jn5qf|A~FTr);wut3R9#$)l< z{Rx&dRmqBQyki0WS1OsL?bA5?4(mCzP;t|FcET_g^>bsKKTc%Vol5Qq-|vI?>%7-% z*8wh07Rl5pNoj}pTR_6~Ta~N~$G^-M*=E>JFBh3NC!0`OJ6MqrDaJvN5e_QI_`Wg~ z++?ob*OKwYC}ZBA!|_2Q!8J^5SfQjc4EX!$B9-f7LdlsTeMUlaA@*5_VxJB&ZkmgP z)++gN=-@Ia-Ze5lN`N*3L?zgHHvt}s?PuO2a@nxIIFFm%ABl#P6nVvPI2paY{;%xa?wZKF241Ho>_=_(AgXnukyo}V2DIEmxuaS*L&F990pit50Atn`6u z@FtkU03T4}YF9U;(^l64RY6vHs86|RMxC;KK3YyqY5!?1ejPwfQGe*KM z(nW_elqF1Hah}LN-t@5U!>ffRAI(E92&|xp0jef)27AjKQfgG zo%HD(4xebnM1=Ucyb*1sn zxrKxVNhm7WV(fM=qm6i4BL^XRb{ywFr3(^x0ffsy7$N>QqB}u=NQ93w;TPj#`+u;M z&TH{^!bMtS#zt1ozR+ignvRua_+z^X;;q8}i=Q?EtfvIYmRQAAtY8LTTP}q)eU=hr zjQ9QTO-U`k>&x3VZ~IE}tEuLv9^1Bk?o&_VU6>%L<;Qp4ukKK#`p+#6?%;?aWbkKI N0slVJbLauJ@_&2W)CB+l delta 3677 zcmYk9du&ui6vofc)|OIWOIx7wYRgk?p$LtwhPa3|LR(q1AQcJ=v_4~4$VNjV*#d10 zO0gRjR(wVNAQ3HCQ>1}Ne1J*=NHG{6NCIjNsOV}ig7WY;cjxxbCe!V?bLKq0^PMwy z_s7!Df0ou(JStNr$q31pn?z)~wfsuNADw+$bgzF)t|}PakG=4HO2UsOSBQPR^tn`t z{#BGZuQ%MV<>bcP=%$QOsal&|ca9G6_&Ar%-~N+C+LkJ*HS)C*k-)=B+KpT}Sfn>o$!g>w*o)mNl2WK- zj*(a0j{RySBei}6gD(=~_GtKOkpayzj3(8r|j!Qw1ZQlMG`eY zq77p2b^;DGDycT|Cut&2So-6NM5dG^1Bz$^bFxHoG2ldmfnp-QyFfX(>isGrKIKNt z{xJ-1wE~>a!P+@WN{z$s$BC3K@(>D55b3Z2nhaw1f++eCC*u0aBEE%6-ZBQx0L8af z#Cveij03j>t4HBruBSiY7LhZS{;4StV}XZAE1nV!9wHj)7Dqplgs>kasNexWIFSB5 zOyr{f+ZG(05BX2CB|O&NcQf5n!c-Xm^T8jkb?}$6+tU zTxK0OOpVuE7U9d;FT&xfkxCL6)&abMe1!noajfMAdO)3p#E?(R0rV=h19QHaNUmB4 zR)Sy*IZ}>-Ce7QB;`K?Mg98|T9RqGg8*ordSNI+MVbTFqz1M)*I5hgnfj#A>SpJlJc=tpz}A8K@yc zpOxWa+O*0dRct6-@u0{02{((JyDSnk4!@&|5|pSKS(m)6kp5d$?DcsE4n9csrK7Nf zK26X@wdO$g0FjI7%9*(uv3DTb(^(#*7m>TIfZwBwb|xr`37{-hWTUlz&p`VBB9JUF z3hQ-*^tJ1-oCt4WQc($~MB^cuuio3AQ7qCqHd%8$y3a8n*5-Qpg^cnUjCOZ&zJPwJ zh2ZsK`Y$oxgX~>MH=hV0tK;w*Bx@P(W#}&eQY(W^w8vMLydF<6tAv@5>^K1hjlJGH zNNaULYXpeHKu+Ke}z{g&Q6TBd=iaDlDfoPM;P*q5z0AJF-uzVEsvp^(B)T#TLsC0cnO6kRCvJnM!($ z!w0edJeQZYuS?_yfu4u@Mt4NMWD*4eUQJ_+%4-&@Ps8#WCSA}NY{$}WGIR%10**Xu zk$AvZ?hbRiX+#Fo)@7pPHFJI%WLnpU5chv35Y_irvd<_?q4>ubjit!COpVp7#BeFHLvnrp{|xEsh{z>f0~s}1 z8Qqc1<&)#FdL@IVjqA1DIQ$$ru(%IWIYfzixJ?}g*nb?oseKs_k}GiF3>?t=&i$W- zgZ-9+AEnfmoKsk;jT4G3SHk{0U05 zXsW}Bh(n6zaX|8j2Wef3$Sw@JH68)08!ZR>XqQIX$_;3{egoo_tO*CYWT`;e!DtQ} zc^z%svD_TU|1m0P6_|KMo=%Fc@?U zCha|<17H-_ngE6aQRo4$WNnbLGEK=b{5u9(Xq)L4q!na%+{*X}CE7s7Zh*5${bOtY zYi51x6`ZQ1y~A`-h1Eqd{FGVxzYw7BA?|;dL<#ynVX?e|+1+DJs-c?2)?hlJS!}%p z2goSc zED*V1=^uuqPgz~F4wBVCGPe!)aCh`@cQoTqb7U)s9?jwYr*uvLyMS;e5V{cm3+eXb zz$M|69QZKD)BlrHqL;mQ!s(i1)*vflE_7I=rekF$_82#gzj@ey?=H*1B1#YndMqv{ zgYmq!d}C_5jS?iR{m%BG)BAUox2W)}&e|0PKXx5CqOw$eJL+82q$q+5IZIrbe23!~ zyH)j;uL7IuWOTJGQzO*>A9ug1 diff --git a/proprietary/system_ext/lib64/libwfdmmsrc_system.so b/proprietary/system_ext/lib64/libwfdmmsrc_system.so index 46beed4063b177d34a903d6d1eedcef10f0887fb..5af2458e9a343524772e81d38480c4fc39944a71 100644 GIT binary patch delta 22279 zcmeI4Z%EZw7{|}=THfpJrq@5|)e^6EZMTtGQ1jM{DQg>!73LhvHsQ(&(#@ffBS*4p ztQT%M)ZOS_SVP#0G;%nwVS|AYdtoFf^oOkkt2J;u-^0X!#{HnaJ@PkXkblcOa`u3V%M=R;*Wv0^IA%2b9Ybwf$ndwt;+WC!cMP>{A;aGmi(^K^-!as-g$#dNERGosf5%YU z7Bc*8u{dTl{2fDWTgdRY#p0OJ@OKQgZ6U+o7K>v>!{0H~wuKCTTP%(l4S&Z_+ZKAk z)~ae8?{Pprw&1U$k64UE%`0M4Vn$7T6C8pQk@Yl;z zHJjnDN=&c6;jfpcYBs}Pm6%?C!(T5?)og~pDlxtOhQD5(s@V*GRbqPm4S&5nRkIoX zs>JmA8~%EEs%A6%Rf*~KH~jVTRLy4is}j@eZ}{uwshaIc^WUS|@MHRaaH@XdRJ}F* z+>>6QssETe_8+d%Req~*^{^bA{Js~~Y^*s8VyiJ$nCQ9$>0c@hUl ztSTXnSh3~8>Yu1MW97Ogdd^xkR-)&$!cTJUt4NfcwKlH*w|m889+}ra ze)N7Ub9~@_hs`g~io~X2YuWf+*XO=MFKfEO3-fVIG{(n=ypbH{jSpoN6#AHF0L{Bm zWH)#Tq0VsC%a+!nnk2QD&q93&>d0j@FHq)t%TcZLi`Z@tnwv>Io{ef0)aIwqe4fa-^xU)w%>xDPGaWkXx>6~FVcx!evGQT>+c(4Rgx#VNoHb#mAwwt zMTqT6iT#02dr3h-VK%$<1;+A(Fn*`AQO8v;3;9u%G|u@ja}3lVeXF!lY@>XBL9N}0 zvAsC4ZFDx~LEU)-%>4np-#{F?wmem4%|`(al&l!0U-|gid>u zt8SJ|sXHh47u1dvwK#+J7c%=(*1K~h?Jua)&tTmyEX$4(=aM4mD&?E-=~9fX1NFis z47!CW*w2(X25KL@ty(B^6`l4mP{dPO1d_d|0P86Qs)o`xvp}B_Y zR`IPAZ;fhD!?fNY#a<_p?VxVChUPHE9w(ARpiaGqX8CqLOeAMO?F*qQ&qj-UenDN@ zhw2*I{o5hzxpIx@IZW$qrmh;OZWPoLX&8Hz)N7QvA5`B4RBLf!F*>o6pnB+yBfH8Z z8jGOLWnj>GirpK)u1bnUR~_^oOj6w|wEK0%1vy@}um^*>D0Vy;>aHkhYkl*;yRFef vEv@ftJk*YX8O-7)DJ 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 delta 3666 zcmaKve{54#6vyv--LSy$^=-gf*7e7RP;k_R;W+;RfgP5A2o)W+>Hw73h| zQO1u~LLC#>VAf~lzFYYYMdS&nvwx9sENsbgs0V@Bx45q|JkDbfq2+*+NVJn zFOl&X;32}BmHkZuQ@O_DngJH_hetjCoTgkYejK_ex4+5{Ep6TYDDU2t87dy`RR2X;=xW(c7<@rcU zUSN~$qaMqe z57EYYDQjcE6OPEM7sK~7aCR5eAuMbKUqxDiH8QkhKkoPNT#Ku4H*lN4Ue*(WQ&rHd zs@_nachvi>I}mvec%37(-+2qldJAl_mb37!dhE#UP#g1QXuXcJ_5f`x23)ldYBjia zFN8V)JpK%DKla7WQkM)0Y_fCT0Cy3N(_G6#-Ss-KpK|`5LG=b+=Lqd!EpT*!G(LI* zYSqB2d2+?RI|Vja;YHwmTY@(3<6(y9=Mf!@16(ad4atw z5{7Rz_LkB_E&;bV@J+sN5n9wML-RV0;u_j_r@$r~{RvKoRA^MOKB({g5LjjHR5P+R z2JE4nx0AZE5x%E^BQMd8Xt{^RUeG5)+qMJu{e+j%Tx%1Ux4|#CuR=@mgDf7BX<+L+ zV0Btf&}7O1k6tNPU#7z}3E#&)0rpVjPtkNR79lNv0;>nrBlHB00T=%$H{Qdoh@2+` zHdt>8ST)fs6L=7K6}7)QOtZqkc^GH3F*SPX$#@AkMGxpCMee8B60MWIC#XaF37_I6 zX%PJ_FrVjF5t_=HD}tohk5!0o(7IP+Tf;a1Je%rrSIZR z_*VNq%#TA@ysrstu#?oG3Qy77UK%(_zInj%%9A<=j%FMTh51z5FUn$J|BjsdqjX3KFZXad-B;M0q!-oQ;mFs{zp9v-5|T3%rOD82|B z$HJzlpe5jQtbFu%DDr4PM&9#kxjM%4BaC+fKTL1At(2D4aL3Qpmnm(rfId zM&0k@-sGj$EZ?rU-1de>z1B|E>k+NOez#taX>R+XSSsvmKWdyb>Yi#9qFOuF+KU?W ofNce&Y(qd#SBlr9g(H^&dW~+6a*^-9e)Dnr+~r6yr1xt70>JOe^#A|>