CrimsonSorcerer commited on
Commit
913b0e4
·
verified ·
1 Parent(s): 86246b0

Update build_apk.sh

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