From ffc2f640d95d68a73136d0af30856d74d86b3adf Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Sun, 23 Aug 2020 12:45:04 +0700 Subject: [PATCH] VMLauncher... TODO LD_LIBRARY_PATH to support Android 5... --- .../java/com/oracle/dalvik/VMLauncher.java | 7 +++++++ .../net/kdt/pojavlaunch/BinaryExecutor.java | 4 ++-- .../net/kdt/pojavlaunch/MainActivity.java | 18 ++++++++++++++---- .../main/jniLibs/arm64-v8a/libbinexecutor.so | Bin 9992 -> 10064 bytes .../main/jniLibs/arm64-v8a/liblwjgl_opengl.so | Bin 362176 -> 362176 bytes .../jniLibs/armeabi-v7a/libbinexecutor.so | Bin 18000 -> 18000 bytes .../jniLibs/armeabi-v7a/liblwjgl_opengl.so | Bin 288336 -> 288336 bytes app/src/main/jniLibs/x86/libbinexecutor.so | Bin 5564 -> 9704 bytes app/src/main/jniLibs/x86/liblwjgl_opengl.so | Bin 443788 -> 443788 bytes app/src/main/jniLibs/x86_64/libbinexecutor.so | Bin 10264 -> 10336 bytes .../main/jniLibs/x86_64/liblwjgl_opengl.so | Bin 378832 -> 378832 bytes 11 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/com/oracle/dalvik/VMLauncher.java diff --git a/app/src/main/java/com/oracle/dalvik/VMLauncher.java b/app/src/main/java/com/oracle/dalvik/VMLauncher.java new file mode 100644 index 000000000..9586e15fc --- /dev/null +++ b/app/src/main/java/com/oracle/dalvik/VMLauncher.java @@ -0,0 +1,7 @@ +package com.oracle.dalvik; + +public final class VMLauncher { + private VMLauncher() { + } + public static native int launchJVM(String[] args); +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/BinaryExecutor.java b/app/src/main/java/net/kdt/pojavlaunch/BinaryExecutor.java index 9396f2e5c..59517c7fa 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/BinaryExecutor.java +++ b/app/src/main/java/net/kdt/pojavlaunch/BinaryExecutor.java @@ -4,6 +4,8 @@ package net.kdt.pojavlaunch; public class BinaryExecutor { public static void initJavaRuntime() { + chdir(Tools.MAIN_PATH); + dlopen(Tools.homeJreDir + "/lib/jli/libjli.so"); dlopen(Tools.homeJreDir + "/lib/server/libjvm.so"); dlopen(Tools.homeJreDir + "/lib/libverify.so"); @@ -12,8 +14,6 @@ public class BinaryExecutor dlopen(Tools.homeJreDir + "/lib/libnio.so"); dlopen(Tools.homeJreDir + "/lib/libawt.so"); dlopen(Tools.homeJreDir + "/lib/libawt_headless.so"); - - chdir(Tools.MAIN_PATH); } public static native int chdir(String path); diff --git a/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java b/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java index c2f5a4097..4379dd5ec 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java @@ -29,6 +29,7 @@ import org.lwjgl.input.*; import org.lwjgl.opengl.*; import android.app.AlertDialog; +import com.oracle.dalvik.*; public class MainActivity extends AppCompatActivity implements OnTouchListener, OnClickListener { @@ -673,7 +674,8 @@ public class MainActivity extends AppCompatActivity implements OnTouchListener, AndroidContextImplementation.display = egl10.eglGetCurrentDisplay(); AndroidContextImplementation.read = egl10.eglGetCurrentSurface(EGL10.EGL_READ); AndroidContextImplementation.draw = egl10.eglGetCurrentSurface(EGL10.EGL_DRAW); - egl10.eglMakeCurrent(AndroidContextImplementation.display, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); + // egl10.eglMakeCurrent(AndroidContextImplementation.display, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); + System.out.println(new StringBuffer().append("Gave up context: ").append(AndroidContextImplementation.context).toString()); AndroidDisplay.windowWidth += navBarHeight; @@ -1018,10 +1020,11 @@ public class MainActivity extends AppCompatActivity implements OnTouchListener, launchClassPath = Tools.generateLaunchClassPath(mProfile.getVersion()); launchLibrarySearchPath = getApplicationInfo().nativeLibraryDir; - +/* System.out.println("> Running Minecraft with classpath:"); System.out.println(launchClassPath); System.out.println(); +*/ redirectStdio(); BinaryExecutor.initJavaRuntime(); @@ -1029,7 +1032,8 @@ public class MainActivity extends AppCompatActivity implements OnTouchListener, BinaryExecutor.dlopen(Tools.homeJreDir + "/bin/java"); List javaArgList = new ArrayList(); - javaArgList.add(Tools.homeJreDir + "/bin/java"); + // javaArgList.add(Tools.homeJreDir + "/bin/java"); + javaArgList.add("java"); // javaArgList.add("-Xms512m"); javaArgList.add("-Xmx512m"); @@ -1058,6 +1062,10 @@ public class MainActivity extends AppCompatActivity implements OnTouchListener, javaArgList.add(mVersionInfo.mainClass); javaArgList.addAll(Arrays.asList(launchArgs)); + StringBuilder strb = new StringBuilder(); + for (String cmd : javaArgList) {strb.append(cmd + " ");} + appendlnToLog("Java arguments: " + strb.toString() + "\n", false); + /* ShellProcessOperation sp = new ShellProcessOperation(new ShellProcessOperation.OnPrintListener(){ @@ -1071,7 +1079,9 @@ public class MainActivity extends AppCompatActivity implements OnTouchListener, sp.writeToProcess(javaArgList.toArray(new String[0])); */ - BinaryExecutor.executeBinary(javaArgList.toArray(new String[0])); + // BinaryExecutor.executeBinary(javaArgList.toArray(new String[0])); + + VMLauncher.launchJVM(javaArgList.toArray(new String[0])); /* "-Dorg.apache.logging.log4j.level=INFO", diff --git a/app/src/main/jniLibs/arm64-v8a/libbinexecutor.so b/app/src/main/jniLibs/arm64-v8a/libbinexecutor.so index d5d67f6623e460fa71bf16d8320cf514cc738ad5..b73da1c755a927f8e267942a30eb17cad96ae242 100644 GIT binary patch literal 10064 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 delta 2016 zcmbVNZ)jUp6u<9J^FLi)lQykQ_L?P4TWFdkj7~STO|2S1YBwl$xUotVN9|TBezKEp zpism~vQu3?tdgo|TPJ4JVZp+ppXvu84F8mYvoHr6RA}~L(vcC*$-B4K`a$r7^M3dI z?m73~b8_B&g}$l2RDDa%!Ya~j0GkT%0YW!>m|5^y$7<7Efkb_^F(r_>3|m4lp=SJs zor(MtPsoOSB0cNXa@;A$opR~#kJp@W8XkWm9FW3+iw=X{iR}i>+TpD9T;M;qg`%V% zx$)NUscS{KIN}Re&m?~NOkNqSqh&PI$^enJQ&CCWsFYs~87Pz>i4}DhD%FBcZG%~< z5efm7=YG9>z_Oj`8}N+XXVZdde4PqC*-jX_Y}6!EwL-}IL7j&&@1&j zasgK?-SccLoo8nb-&ATBX5dZ7E7AnqavWAuflDzs=sYC72v5) zDc*%7a%*O`*@u{y*;llUSiZ7!Yn(4#w~&B8oUcl8I8r?U%h~`HTWVAewjxr!`%C3= zFX9H`DB{$Ea(NnY9dVgKoqLb0mf(OpTy+{fGH}kVo5*jy1n;=R{#J6M#u#+?T_4Ib zDww7%@7q3bT&T{t7X6+ltcxkns%cU*!OlOOLP@CMNQ8aYFt==KI1(|h@&Uj7*i+no z$Z%t#34MkQzxe~P0>AR8ok{lcfw)DQ=zT!puMIl}vEBNitmq+QlI1zlO+q5>53gae zBqszf9Qa$nk}$iwE0X7%mdoWa3gky)8{B@6&u@|qT8kG_o})c3zR3T@Tx9XS{gM12JI!#J{{Dgs?_8Cg*~fybbTtT?s6c8CR|Hj!)I z1S7#tO%z065-ta$HKJ?+^9=3=JG7mdW+4`e)`%_=IIX~Ip$@H=z7;3}2cQ_%p%8Lu z|N2-#F%;ESxWB+9C^qZR-|Vt&`{s=_cUna^WnjK}zg65%b8rW(t#2l@h4*WsTe7-w Tlpz=o2jR!?QRy1QTJ*mFd-+!% diff --git a/app/src/main/jniLibs/arm64-v8a/liblwjgl_opengl.so b/app/src/main/jniLibs/arm64-v8a/liblwjgl_opengl.so index 3fe8ee6d1d227541bf99ec688a91a3a6fe5bb1e2..506323fcd48d474fbb82fff1f1b073c882d641a6 100644 GIT binary patch delta 55 zcmX@mD|Vn)Y=Z!kNZ3{dFWZ1)9~yUtwMIAJ3w`S1wy#-*sa=JM5r{!FGZ3?ES7BnE G(*gip1``ng delta 55 zcmX@mD|Vn)Y=Z!k$a&vwRVKfG?_dkpzIs2vr~mFGZG&bNrgjx3Mj!^!%s|YtU4@Bt GP745a)DvX@ diff --git a/app/src/main/jniLibs/armeabi-v7a/libbinexecutor.so b/app/src/main/jniLibs/armeabi-v7a/libbinexecutor.so index a19de2b5b2339b749f45d34e21b7823c79c4e952..dcc4c4e22512fef2702e23f9e46907877d3ab763 100644 GIT binary patch delta 6481 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 U!b_Kw86q&ak)-B(mi*`c0R-q3-2eap delta 5277 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ⓈN2ML14ZuvH`BmM{nC*@ zziKem_khX1XjHbhf}P;K;GI9p_I=;ldJIrui33v9$fcuyA;6T8w<^L3-&mlc@9L^%^=F1jLFK@t$ zIUWFZ5q(F;BOkks{KbW728uDEn|GoI?Epc~ z`=L!Z-pWmuln~lAf)vLKEXjtOfAjI*TT%?RnRpC=qx@Nz8Z+_l1mMu{w=Kz9|KErF qtR-DbA8;0a4U+#aL!MfiZm2>QRNaZxrBTGUG E0IHZ66#xJL diff --git a/app/src/main/jniLibs/x86/libbinexecutor.so b/app/src/main/jniLibs/x86/libbinexecutor.so index 441575ff8262e32d76a56711277d22f03567d531..9a7480674f0d2f7411995ee612cce11f220bc91b 100644 GIT binary patch literal 9704 zcmeHNeQ;FO6~9RqTwx(ArHZKaRaP3REJ;X0B6b=uM4=0AP&PWWU0-%zvKu!0;@h_o zEThyV>UJj@1+6osEsl&bovO4tEghLotQ4wctev5hT1V3nJIfGfa7F=J>+A1#-+Rfj zFb>nd`bSRYymQYzANSmIKl1Lod;f}1dqqWsaG^?6372a?<u#PjqGB56t)uwC7?QWJFiq0Xf)nfd0|ESWEk|_!y(xz85-Mfv6J8(s4si#>JOW zHtOrn>ldO6f~Lm$=DLO@7o>YWCH8MNunKtdnswrn_>$?~wfG>lYtcFM;<$?(&CG*fULtA=J+jGsNwnqdp-*n1tlFfcKR6dk#GP6X@?Q z&@k+ypwxc?bkD^?Jnrx<(D#FX%;8spZ-xIS9bQDEv5jg}HMNaNQ-oG7ze%K$U9n(B zC+$k6wT)UVYw8ATx(!Wp47!tPHI=+q6B*M;X=##J|0W1CrW)H2jU_fjyVYb$tWpQm zXj(I)8{%fPU++~1Qff9GOGKB$fw5_Y;~fU^q#q^tUH3fvx4ZASa@XyzRP1=_^`&jypT7V8yayhk&E>!^0jq(S zHsT^6_ZkAGm7s4-KM6DNjxZe=C zBy6Ze-zWa~zl7PS1g$vlA8qZw7rS@+7(3w#n@9=!&b}zX*bGKnDf^6ql>ZTwa)K?d z8kh6`3uE8u&|MDQy9j+j;`WiEfkU7dA=I}>(V4@f=o{LJXI67kPl0~ zfqa;JtK?~#xPyGH{nvWFhJ7{n&gYhu_XLWwAkFRfu77Q~ z6wc;`hmW6tT8TobzsumS&=&9yj+m9!Teh!K`RVyW{o;?L2w`;(51I4Dy8H*Xbw+Z>PUgn^Za;nsy~1j5p#pugvc3*$_~#hS z+FlZ~oN+!|Jq6U$#vP>%4_&sO=Tu zwbo<19DknQ-rNG??CbfHL)ypRjjsRBYbR!uWMg>veDPV=j>iXoR@RRQU5^J4b8l6+ zc=$ie03se7$zD@DLT=1ARQTR|mNm33g=aX@v9@<=@sQM02CeER+5*!jqL0{aciVyf z05Uhgp_h>!4D>#XjyP}rqF)>zQrGQ9=cL(lc60eNZeykWSKRTjFvSa5Z(%C>I#k$( z&U8eq@EmrxE#PCdotB6->|`JH{=!T<{gH|EA7rvB!o}x4vy;^pm@Tb4^QSqFVDI$5 z_yjbN$$4xsw~y(Af>L~8!mwya6|*IOU?}%Xrn$g0N5UP*a<{ElxCkLcU^%%70XMDjy2?*j;B9IZbB$ zFn6b7wVjC0@kA6t0e{}}3$8U3eeEqDWtkfGF<{*u2q4nq5k@+2-tpGw$??#h=GKL_ zy@lKvXy{vUI?E|f- z==Fq)$KVy+#zvMm1D?TCm~YjO`~(4Wk(YoyU$9svCYv+SI0)g1$u>Arz4ZY!na2vn z3fOM@m(5`YW^K0M3*=Ix^cy7&p$SO17E2>Uousm^<48D@BO>}(}vl3%kH{#A6 zsdT3s?5nnzDIB!!fAGX}XTLIwcD!F}amCaX`vq9JHgf||;2m3Clv2|@i`Jzxs+r7m zC$)GenclEMzTe8HRP0leX~CD!iFa3pZ{W#vk8-nS;*GRsL8;8p%&d`y6xH^tER7Y_ z=*i$=sGF2@HkGJQs;&GrfbA%V$hk`QVg?Jh`gMtx!ZY_1b_w3?$D}=jaVi=%pau3O$~~ z&e2(xNC9k>sAJnx;O_b&97`KEB*Q+EWYV7uX2?HpakSfV=ymF>{wxv^ZgN~s)I zW}oJu?K7WP)+owirnh~jZ&mel)3Z^0bMDfw*9WjW*-&vs)zW=*~py$|1xL|=xp?f?`ylTJ8TARLoB;NU0;)QG6Rztn9RUr1|~BwnSsd+OlDv* z1Ctq;%)tM12KfDc7>BVikT(e<_>RuwRRYMn4G#`RJY({{gZR!=`<{YlH{Kh-OyD@A z(-tCe66Y@7Y4Bq@KFfW}fvwauH8eIXS+ZE^QZx9fp{EsNaZ_W{;<{M< z0wu=J84B*(GD!$pg0;bBr6ysT{h1pUEpo2wf<3z4lhQJJ)`)3AT)!478ylKi8k?6iFKOtiR~OeeYD?6{x~8s{mU#2x=EjzmSX1`` zrDi;qP$;t6ZZ|WKUVyMUPQ3pjFlA_WuN zcXn@>f`x9VOv8l$*8`@8TvzVzDV{1Zbm!*PC3=T2v5EYa;R45j!2HuE?YQ2EypyLK zL{hH58-QGw)Z;oNavi$h7MG*ql(R;-K8d`HqAh`biS0m$q(81-;vVqjdLh)gYmV!Z z$e3L{#zVXl$h9itgAUg&*LZ0^z{(2~PuAO}*0J;eeIk>hUWv_1Hi8dmwC}u8fLqc^}FM zOX_jI-3dMB%LVEY{{Uq7=uiHB2zq`r;QAq@-JgMOySxwHiwR!t4=UnFi5~y|j6koI z0tZ~b?}4Yi9M4)5l=J&L1`*q(iUb9FwNoUajQAlCLplz76?^`<6>huKm2EnL!_f1v I(gC;lUyjt42mk;8 delta 1737 zcmZWpZA_b06u$kWEnhFtKmqf%ye({QhE>;)OoOuNfG9sGG6G`KAe4+*=q&8Z>;uv) zhICDU^T!|i!4_r47^k8W-Arn>Z2H5=4~SXRfDTz*h+)aZFW~h#FYPk%CeMBDx#!$- z&U?>!Z}NpJ+ecglGkHQAKH(A;u~ifc$LP+-pI*omf?;B%B!mw1aSkAFpaB~Ub4srV zC!kM2pO8n-SLJjQ)EH`hG+c(J_n`9GzMr!c+;!W}nmR%bLlDPMhy63+e>bKC%TZD*X zKVM{vs!jR`^n=g`z^or<`wSt*QnC~FHIPT?n8CNRD-=E$>=U7$SGq!#{b3OZbRO*p zbocaignC{Nimp&F5(!5{Z$~H;?u6KXte0*YYG~fDm8y*y8Xq_2(3sI~@7&+j6A_)^ zzQe)DKwuyo=-l5yvZ=C37!cbAaEZ8F?+KUNRg-1qy(|D#6MOc~E?vGocKnHnPgiff z*80d>&6jm&-~9Tiz1@G^=JVVnY>%3XZ1U?0>ew4=_yUXod%}ltuV@}~!MF%5A~%s0 z;2aDO0WyWnew~lLG?#XBYw?Mx6kkd44^DVSsCj0DTVO`0Br{wuF(aL2W~6eT8IJyB zM%Yzmtxq`vI*>6@`eJm+l4PlU=xSXt${Af)SJh#oC)q@=T6XLIaM1e}x#~NI5YZ*$ zhBh7(cT}}e9q>5($win)uQ}SUjy&w@0_>CDlisT6PdTW(oN7CwrXjvP>9$e zOU#VSnfd;DooQjH%3E}oxYHA_4R9XQ>xGp zuF;C5WP5OZ3849JRUM}jd2X*=RaGvv7dtapkNl&mUa%KlTEXmXkmWU1eFr@GQ{J?G z7nePO@(cppP}3+EH&;DS1e}3OJD6LLF#wtWT?fs|Tb}15+?Z`>jNjMQ@XKfbZpX8j zxHb9ZVXni(T#%Ce5V-M6ff8U!rdp?5av#T#W!Qlr$TG}FP^YlZL?@k3R`TnX9xE_0 zBj-Y(0;mFNffk?}IBcF=cV5!bXJvJymIZYZ1r?`N`$Xj2MsY}-Eu)4$QCt=*IPF&Y z5h~7vp^(Y#G;=-<6K!)VW*?SFr^&5Y`6?I=I^lL&`Jx#0^fshe;@K{{hP-!#k82oGUTaq4A61`i#r3lt)dJD{! GJpKhj_^BZP diff --git a/app/src/main/jniLibs/x86/liblwjgl_opengl.so b/app/src/main/jniLibs/x86/liblwjgl_opengl.so index 13926a85f18841dcc3df4a9e8bd662011d6d9cb6..d3a513e5fe7182f41764d6d641f81f21161228bd 100644 GIT binary patch delta 59 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 delta 2096 zcmah~ZA_b06u!6g6I!Kw6%<++EoGUbZZf`PQW#5K3=xRTRD%)*F(Y9aC>o|HG}G8> zFr9})vdjz;Vldec6O3peS_m5U!-N@}+hP=*QA!paMh!#U>pAax?>6TTPjl{b&vWj* z=i}bCtIcE0v0~T70(Mh^tb$otkma!KlQoZbZ#s03M3$=C9Knp*o2T2oyZ?@AI91s%$o}SHzsWGnT+x?z2~PpRv(zkdS@}CVfxz_ z_x4S~1kZ(KzY)GM)bk6lVQ}$vZDbHma&f0NW^1DxCX6n=hsK<744=jv?3zu_qnoNn z@sYRb0M5ueF1!tzkFh?%=L`NN!Cw=6%&HS71ka9k^zyuIKFz-*Vp`9dmqtYeODHc>p^e$8*DqSG$HldP5 zAHpP-1l*bfUTX!n!jsl}hvbtGWin|Gh%1+TvzQFu!QU_Vct8uKWkQjqEZxS7*QU9a zbso;xOmNj^=NF;C=7J@g-9a@;S%VF$3pQ4{~{-twbO!4q-K{*7!(GV#7Zh4iN!*kLw@85D1+ zY7D-}C=6v|yXYHYL}mrAWE8O!xkX=PetezlkvLK1A5JpxeEioVF3j@j3q7*D)tFSCNBup%&%3F4`!Lrc` zguQ{ZRk287oWX*(#5pc1k{AQ-3#7@bm3Utg)cH!BZQ_?#;vxJw_Q1F=HSHtek@zDv z05|;S4-$A$z$PD3FH{zl+vM-;031i_)*tQ1MdiuzNlkf9hO;2mpYOcI=r