CrimsonSorcerer commited on
Commit
bc4beff
·
verified ·
1 Parent(s): cba5c16

Delete build_apk.sh

Browse files
Files changed (1) hide show
  1. build_apk.sh +0 -131
build_apk.sh DELETED
@@ -1,131 +0,0 @@
1
- #!/bin/bash
2
- # Kullanım: build_apk.sh <work_dir> <app_name> <pkg_name> <keystore>
3
- set -e
4
-
5
- WORK_DIR=$1
6
- APP_NAME=$2
7
- PKG=$3
8
- KEYSTORE=$4
9
-
10
- SDK=$ANDROID_SDK_ROOT
11
- BUILD_TOOLS=$SDK/build-tools/33.0.0
12
- PLATFORM=$SDK/platforms/android-33/android.jar
13
-
14
- # Klasör yapısı
15
- mkdir -p $WORK_DIR/{src,res/layout,res/values,assets,gen,obj,bin}
16
-
17
- # HTML dosyasını assets'e koy
18
- cp $WORK_DIR/index.html $WORK_DIR/assets/index.html
19
-
20
- # AndroidManifest.xml
21
- cat > $WORK_DIR/AndroidManifest.xml << EOF
22
- <?xml version="1.0" encoding="utf-8"?>
23
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
24
- package="${PKG}"
25
- android:versionCode="1"
26
- android:versionName="1.0">
27
- <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33"/>
28
- <uses-permission android:name="android.permission.INTERNET"/>
29
- <application
30
- android:label="${APP_NAME}"
31
- android:allowBackup="true"
32
- android:usesCleartextTraffic="true">
33
- <activity
34
- android:name=".MainActivity"
35
- android:exported="true"
36
- android:configChanges="orientation|screenSize">
37
- <intent-filter>
38
- <action android:name="android.intent.action.MAIN"/>
39
- <category android:name="android.intent.category.LAUNCHER"/>
40
- </intent-filter>
41
- </activity>
42
- </application>
43
- </manifest>
44
- EOF
45
-
46
- # strings.xml
47
- cat > $WORK_DIR/res/values/strings.xml << EOF
48
- <?xml version="1.0" encoding="utf-8"?>
49
- <resources>
50
- <string name="app_name">${APP_NAME}</string>
51
- </resources>
52
- EOF
53
-
54
- # layout/activity_main.xml
55
- cat > $WORK_DIR/res/layout/activity_main.xml << EOF
56
- <?xml version="1.0" encoding="utf-8"?>
57
- <WebView xmlns:android="http://schemas.android.com/apk/res/android"
58
- android:id="@+id/webview"
59
- android:layout_width="match_parent"
60
- android:layout_height="match_parent"/>
61
- EOF
62
-
63
- # Paketi dizine dönüştür
64
- PKG_DIR=$(echo $PKG | tr '.' '/')
65
- mkdir -p $WORK_DIR/src/$PKG_DIR
66
-
67
- # MainActivity.java
68
- cat > $WORK_DIR/src/$PKG_DIR/MainActivity.java << EOF
69
- package ${PKG};
70
- import android.app.Activity;
71
- import android.os.Bundle;
72
- import android.webkit.*;
73
- public class MainActivity extends Activity {
74
- @Override
75
- protected void onCreate(Bundle b) {
76
- super.onCreate(b);
77
- WebView wv = new WebView(this);
78
- setContentView(wv);
79
- WebSettings ws = wv.getSettings();
80
- ws.setJavaScriptEnabled(true);
81
- ws.setDomStorageEnabled(true);
82
- ws.setAllowFileAccess(true);
83
- wv.loadUrl("file:///android_asset/index.html");
84
- }
85
- }
86
- EOF
87
-
88
- echo "=== 1/5 aapt2 derleme ==="
89
- $BUILD_TOOLS/aapt2 compile \
90
- --dir $WORK_DIR/res \
91
- -o $WORK_DIR/res_compiled.zip
92
-
93
- echo "=== 2/5 aapt2 link ==="
94
- $BUILD_TOOLS/aapt2 link \
95
- -I $PLATFORM \
96
- --manifest $WORK_DIR/AndroidManifest.xml \
97
- -o $WORK_DIR/resources.apk \
98
- $WORK_DIR/res_compiled.zip \
99
- --java $WORK_DIR/gen \
100
- --assets $WORK_DIR/assets \
101
- --auto-add-overlay
102
-
103
- echo "=== 3/5 javac ==="
104
- find $WORK_DIR/gen -name "*.java" > $WORK_DIR/sources.txt
105
- echo "$WORK_DIR/src/$PKG_DIR/MainActivity.java" >> $WORK_DIR/sources.txt
106
- javac -source 8 -target 8 \
107
- -cp $PLATFORM \
108
- -d $WORK_DIR/obj \
109
- @$WORK_DIR/sources.txt
110
-
111
- echo "=== 4/5 d8 (dex) ==="
112
- $BUILD_TOOLS/d8 \
113
- --output $WORK_DIR/bin \
114
- --lib $PLATFORM \
115
- $(find $WORK_DIR/obj -name "*.class")
116
-
117
- echo "=== 5/5 APK birleştir + imzala ==="
118
- # resources.apk içine classes.dex ekle
119
- cp $WORK_DIR/resources.apk $WORK_DIR/unsigned.apk
120
- cd $WORK_DIR && zip -j unsigned.apk bin/classes.dex
121
-
122
- # imzala
123
- $BUILD_TOOLS/apksigner sign \
124
- --ks $KEYSTORE \
125
- --ks-pass pass:android \
126
- --key-pass pass:android \
127
- --ks-key-alias androiddebugkey \
128
- --out $WORK_DIR/output.apk \
129
- $WORK_DIR/unsigned.apk
130
-
131
- echo "=== APK hazır: $WORK_DIR/output.apk ==="