mirror of
https://github.com/YGGverse/hlsdk-portable.git
synced 2025-09-12 14:11:59 +00:00
Update java launcher
This commit is contained in:
parent
9a1f3bd2ea
commit
5616b6017d
@ -7,7 +7,7 @@ mkdir bin
|
|||||||
mkdir bin/classes
|
mkdir bin/classes
|
||||||
mkdir assets/
|
mkdir assets/
|
||||||
$AAPT package -M AndroidManifest.xml -m -S res -I $ANDROID_JAR
|
$AAPT package -M AndroidManifest.xml -m -S res -I $ANDROID_JAR
|
||||||
$JAVA_HOME/bin/javac -d bin/classes -s bin/classes -cp $ANDROID_JAR src/in/celest/xash3d/*
|
$JAVA_HOME/bin/javac -d bin/classes -s bin/classes -cp $ANDROID_JAR src/in/celest/xash3d/*.java
|
||||||
$DX --dex --output=bin/classes.dex bin/classes/
|
$DX --dex --output=bin/classes.dex bin/classes/
|
||||||
$AAPT package -f -M AndroidManifest.xml -S res -I $ANDROID_JAR -F bin/$NAME.apk.unaligned
|
$AAPT package -f -M AndroidManifest.xml -S res -I $ANDROID_JAR -F bin/$NAME.apk.unaligned
|
||||||
python2 makepak.py pak/ assets/extras.pak
|
python2 makepak.py pak/ assets/extras.pak
|
||||||
|
@ -3,12 +3,97 @@ import android.content.BroadcastReceiver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.content.Intent;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
public class InstallReceiver extends BroadcastReceiver {
|
public class InstallReceiver extends BroadcastReceiver {
|
||||||
private static final String TAG = "MOD_LAUNCHER";
|
private static final String TAG = "MOD_LAUNCHER";
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent arg1) {
|
public void onReceive(Context context, Intent arg1) {
|
||||||
Log.d( TAG, "Install received, extracting PAK" );
|
String pkgname = arg1.getData().getEncodedSchemeSpecificPart();
|
||||||
LauncherActivity.extractPAK( context, true );
|
Log.d( TAG, "Install received, package " + pkgname );
|
||||||
|
if( context.getPackageName().equals(pkgname) )
|
||||||
|
extractPAK(context, true);
|
||||||
}
|
}
|
||||||
|
public static SharedPreferences mPref = null;
|
||||||
|
private static final int PAK_VERSION = 2;
|
||||||
|
private static int chmod(String path, int mode) {
|
||||||
|
int ret = -1;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ret = Runtime.getRuntime().exec("chmod " + Integer.toOctalString(mode) + " " + path).waitFor();
|
||||||
|
Log.d(TAG, "chmod " + Integer.toOctalString(mode) + " " + path + ": " + ret );
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
ret = -1;
|
||||||
|
Log.d(TAG, "chmod: Runtime not worked: " + e.toString() );
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Class fileUtils = Class.forName("android.os.FileUtils");
|
||||||
|
Method setPermissions = fileUtils.getMethod("setPermissions",
|
||||||
|
String.class, int.class, int.class, int.class);
|
||||||
|
ret = (Integer) setPermissions.invoke(null, path,
|
||||||
|
mode, -1, -1);
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
ret = -1;
|
||||||
|
Log.d(TAG, "chmod: FileUtils not worked: " + e.toString() );
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void extractFile(Context context, String path) {
|
||||||
|
try
|
||||||
|
{
|
||||||
|
InputStream is = null;
|
||||||
|
FileOutputStream os = null;
|
||||||
|
is = context.getAssets().open(path);
|
||||||
|
File out = new File(context.getFilesDir().getPath()+'/'+path);
|
||||||
|
out.getParentFile().mkdirs();
|
||||||
|
chmod( out.getParent(), 0777 );
|
||||||
|
os = new FileOutputStream(out);
|
||||||
|
byte[] buffer = new byte[1024];
|
||||||
|
int length;
|
||||||
|
while ((length = is.read(buffer)) > 0) {
|
||||||
|
os.write(buffer, 0, length);
|
||||||
|
}
|
||||||
|
os.close();
|
||||||
|
is.close();
|
||||||
|
chmod( context.getFilesDir().getPath()+'/'+path, 0777 );
|
||||||
|
} catch( Exception e )
|
||||||
|
{
|
||||||
|
Log.e( TAG, "Failed to extract file:" + e.toString() );
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static synchronized void extractPAK(Context context, Boolean force) {
|
||||||
|
InputStream is = null;
|
||||||
|
FileOutputStream os = null;
|
||||||
|
try {
|
||||||
|
if( mPref == null )
|
||||||
|
mPref = context.getSharedPreferences("mod", 0);
|
||||||
|
synchronized( mPref )
|
||||||
|
{
|
||||||
|
if( mPref.getInt( "pakversion", 0 ) == PAK_VERSION && !force )
|
||||||
|
return;
|
||||||
|
extractFile(context, "extras.pak");
|
||||||
|
SharedPreferences.Editor editor = mPref.edit();
|
||||||
|
editor.putInt( "pakversion", PAK_VERSION );
|
||||||
|
editor.commit();
|
||||||
|
}
|
||||||
|
} catch( Exception e )
|
||||||
|
{
|
||||||
|
Log.e( TAG, "Failed to extract PAK:" + e.toString() );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,10 +16,6 @@ import android.widget.TextView;
|
|||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@ -81,59 +77,6 @@ public class LauncherActivity extends Activity {
|
|||||||
intent.putExtra("pakfile", getFilesDir().getAbsolutePath() + "/extras.pak" );
|
intent.putExtra("pakfile", getFilesDir().getAbsolutePath() + "/extras.pak" );
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
private static int chmod(String path, int mode) {
|
|
||||||
int ret = -1;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ret = Runtime.getRuntime().exec("chmod " + Integer.toOctalString(mode) + " " + path).waitFor();
|
|
||||||
Log.d(TAG, "chmod " + Integer.toOctalString(mode) + " " + path + ": " + ret );
|
|
||||||
}
|
|
||||||
catch(Exception e)
|
|
||||||
{
|
|
||||||
ret = -1;
|
|
||||||
Log.d(TAG, "chmod: Runtime not worked: " + e.toString() );
|
|
||||||
}
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Class fileUtils = Class.forName("android.os.FileUtils");
|
|
||||||
Method setPermissions = fileUtils.getMethod("setPermissions",
|
|
||||||
String.class, int.class, int.class, int.class);
|
|
||||||
ret = (Integer) setPermissions.invoke(null, path,
|
|
||||||
mode, -1, -1);
|
|
||||||
}
|
|
||||||
catch(Exception e)
|
|
||||||
{
|
|
||||||
ret = -1;
|
|
||||||
Log.d(TAG, "chmod: FileUtils not worked: " + e.toString() );
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void extractFile(Context context, String path) {
|
|
||||||
try
|
|
||||||
{
|
|
||||||
InputStream is = null;
|
|
||||||
FileOutputStream os = null;
|
|
||||||
is = context.getAssets().open(path);
|
|
||||||
File out = new File(context.getFilesDir().getPath()+'/'+path);
|
|
||||||
out.getParentFile().mkdirs();
|
|
||||||
chmod( out.getParent(), 0777 );
|
|
||||||
os = new FileOutputStream(out);
|
|
||||||
byte[] buffer = new byte[1024];
|
|
||||||
int length;
|
|
||||||
while ((length = is.read(buffer)) > 0) {
|
|
||||||
os.write(buffer, 0, length);
|
|
||||||
}
|
|
||||||
os.close();
|
|
||||||
is.close();
|
|
||||||
chmod( context.getFilesDir().getPath()+'/'+path, 0777 );
|
|
||||||
} catch( Exception e )
|
|
||||||
{
|
|
||||||
Log.e( TAG, "Failed to extract file:" + e.toString() );
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void extractPAK(Context context, Boolean force) {
|
public static void extractPAK(Context context, Boolean force) {
|
||||||
if(isExtracting)
|
if(isExtracting)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user