sterepando commited on
Commit
e9b6dff
·
verified ·
1 Parent(s): 237d3c1

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +44 -29
Dockerfile CHANGED
@@ -1,17 +1,22 @@
1
  # Используем JDK 11 как базу
2
  FROM openjdk:11-jdk-slim
3
 
4
- # Устанавливаем зависимости
5
- RUN apt-get update && apt-get install -y wget
6
 
7
- WORKDIR /build
8
 
9
- # 1. Загружаем необходимые библиотеки (android.jar и d8)
10
- RUN wget -q https://github.com/S-S-S-S/android-jar/raw/master/android-34/android.jar -O android.jar
11
- RUN wget -q https://maven.aliucord.com/snapshots/com/aliucord/Aliuhook/1.1.3/Aliuhook-1.1.3.jar -O aliuhook.jar
12
- RUN wget -q https://repo1.maven.org/maven2/com/android/tools/r8/3.3.28/r8-3.3.28.jar -O d8.jar
13
 
14
- # 2. Создаем исходный код прямо внутри Dockerfile
 
 
 
 
 
 
15
  RUN printf 'package b.liquidglass;\n\
16
  \n\
17
  import android.content.Context;\n\
@@ -40,7 +45,7 @@ public class LiquidGlass {\n\
40
  View fab = (View) f.get(fragment);\n\
41
  if (fab != null) applyEffect(fab);\n\
42
  } catch (Exception ignored) {}\n\
43
- }, 200);\n\
44
  }\n\
45
  });\n\
46
  } catch (Exception e) {\n\
@@ -49,46 +54,56 @@ public class LiquidGlass {\n\
49
  }\n\
50
  \n\
51
  private void applyEffect(View v) {\n\
52
- // Apple Liquid Glass Look\n\
53
  v.setBackground(new GlassDrawable());\n\
 
54
  if (android.os.Build.VERSION.SDK_INT >= 31) {\n\
55
- v.setRenderEffect(RenderEffect.createBlurEffect(25f, 25f, Shader.TileMode.CLAMP));\n\
 
 
56
  }\n\
 
57
  v.setOnTouchListener((view, ev) -> {\n\
58
  if (ev.getAction() == MotionEvent.ACTION_DOWN) {\n\
59
- view.animate().scaleX(0.9f).scaleY(0.9f).setDuration(100).start();\n\
60
  } else if (ev.getAction() == MotionEvent.ACTION_UP || ev.getAction() == MotionEvent.ACTION_CANCEL) {\n\
61
- view.animate().scaleX(1f).scaleY(1f).setDuration(300).setInterpolator(new OvershootInterpolator(2f)).start();\n\
62
  }\n\
63
  return false;\n\
64
  });\n\
65
  }\n\
66
  \n\
67
  static class GlassDrawable extends Drawable {\n\
68
- private Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);\n\
69
- public GlassDrawable() { p.setColor(Color.argb(140, 255, 255, 255)); }\n\
 
 
 
 
 
 
 
 
 
70
  @Override\n\
71
  public void draw(Canvas c) {\n\
72
- RectF rf = new RectF(getBounds());\n\
73
- float r = rf.width()/2;\n\
74
- c.drawRoundRect(rf, r, r, p);\n\
75
- p.setStyle(Paint.Style.STROKE);\n\
76
- p.setStrokeWidth(2f);\n\
77
- p.setColor(Color.argb(180, 255, 255, 255));\n\
78
- c.drawRoundRect(rf, r, r, p);\n\
79
- p.setStyle(Paint.Style.FILL);\n\
80
- p.setColor(Color.argb(140, 255, 255, 255));\n\
81
  }\n\
 
82
  @Override public void setAlpha(int a) {}\n\
83
  @Override public void setColorFilter(ColorFilter cf) {}\n\
84
  @Override public int getOpacity() { return PixelFormat.TRANSLUCENT; }\n\
85
  }\n\
86
  }' > LiquidGlass.java
87
 
88
- # 3. Компилируем в Java Class
89
  RUN javac -cp android.jar:aliuhook.jar -d . LiquidGlass.java
90
 
91
- # 4. Собираем в DEX
92
  RUN java -cp d8.jar com.android.tools.r8.D8 \
93
  --release \
94
  --lib android.jar \
@@ -96,8 +111,8 @@ RUN java -cp d8.jar com.android.tools.r8.D8 \
96
  --output . \
97
  b/liquidglass/LiquidGlass*.class
98
 
99
- # Итоговый файл будет называться classes.dex. Переименуем для удобства.
100
  RUN mv classes.dex LiquidGlass.dex
101
 
102
- # При запуске контейнера выводим файл в base64 (если нет доступа к файлам, скопируй текст из лога)
103
- CMD echo "--- START OF DEX (BASE64) ---" && base64 LiquidGlass.dex && echo "--- END OF DEX ---"
 
1
  # Используем JDK 11 как базу
2
  FROM openjdk:11-jdk-slim
3
 
4
+ # Устанавливаем curl для скачивания (он надежнее wget в CI)
5
+ RUN apt-get update && apt-get install -y curl base64
6
 
7
+ WORKDIR /app
8
 
9
+ # 1. Загружаем зависимости (используем проверенные RAW ссылки)
10
+ # android.jar (API 31+ нужен для RenderEffect)
11
+ RUN curl -L "https://raw.githubusercontent.com/anggrayudi/android-hidden-api/master/android-31/android.jar" -o android.jar
 
12
 
13
+ # Aliuhook для API Xposed
14
+ RUN curl -L "https://maven.aliucord.com/snapshots/com/aliucord/Aliuhook/1.1.3/Aliuhook-1.1.3.jar" -o aliuhook.jar
15
+
16
+ # d8 (инструмент для сборки DEX)
17
+ RUN curl -L "https://repo1.maven.org/maven2/com/android/tools/r8/3.3.28/r8-3.3.28.jar" -o d8.jar
18
+
19
+ # 2. Внедряем исходный код
20
  RUN printf 'package b.liquidglass;\n\
21
  \n\
22
  import android.content.Context;\n\
 
45
  View fab = (View) f.get(fragment);\n\
46
  if (fab != null) applyEffect(fab);\n\
47
  } catch (Exception ignored) {}\n\
48
+ }, 250);\n\
49
  }\n\
50
  });\n\
51
  } catch (Exception e) {\n\
 
54
  }\n\
55
  \n\
56
  private void applyEffect(View v) {\n\
 
57
  v.setBackground(new GlassDrawable());\n\
58
+ // Нативное размытие для Android 12+\n\
59
  if (android.os.Build.VERSION.SDK_INT >= 31) {\n\
60
+ try {\n\
61
+ v.setRenderEffect(RenderEffect.createBlurEffect(15f, 15f, Shader.TileMode.CLAMP));\n\
62
+ } catch (Exception ignored) {}\n\
63
  }\n\
64
+ // Анимация Liquid при нажатии\n\
65
  v.setOnTouchListener((view, ev) -> {\n\
66
  if (ev.getAction() == MotionEvent.ACTION_DOWN) {\n\
67
+ view.animate().scaleX(0.85f).scaleY(0.85f).setDuration(120).start();\n\
68
  } else if (ev.getAction() == MotionEvent.ACTION_UP || ev.getAction() == MotionEvent.ACTION_CANCEL) {\n\
69
+ view.animate().scaleX(1f).scaleY(1f).setDuration(400).setInterpolator(new OvershootInterpolator(1.5f)).start();\n\
70
  }\n\
71
  return false;\n\
72
  });\n\
73
  }\n\
74
  \n\
75
  static class GlassDrawable extends Drawable {\n\
76
+ private final Paint glassPaint = new Paint(Paint.ANTI_ALIAS_FLAG);\n\
77
+ private final Paint borderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);\n\
78
+ private final RectF rect = new RectF();\n\
79
+ \n\
80
+ public GlassDrawable() {\n\
81
+ glassPaint.setColor(Color.argb(128, 255, 255, 255)); // rgba(255, 255, 255, .5)\n\
82
+ borderPaint.setStyle(Paint.Style.STROKE);\n\
83
+ borderPaint.setStrokeWidth(3f);\n\
84
+ borderPaint.setColor(Color.argb(100, 255, 255, 255));\n\
85
+ }\n\
86
+ \n\
87
  @Override\n\
88
  public void draw(Canvas c) {\n\
89
+ rect.set(getBounds());\n\
90
+ float r = Math.min(rect.width(), rect.height()) / 2f;\n\
91
+ // Основное стекло\n\
92
+ c.drawRoundRect(rect, r, r, glassPaint);\n\
93
+ // Спекулярный блик (обводка)\n\
94
+ c.drawRoundRect(rect, r, r, borderPaint);\n\
 
 
 
95
  }\n\
96
+ \n\
97
  @Override public void setAlpha(int a) {}\n\
98
  @Override public void setColorFilter(ColorFilter cf) {}\n\
99
  @Override public int getOpacity() { return PixelFormat.TRANSLUCENT; }\n\
100
  }\n\
101
  }' > LiquidGlass.java
102
 
103
+ # 3. Компиляция
104
  RUN javac -cp android.jar:aliuhook.jar -d . LiquidGlass.java
105
 
106
+ # 4. Сборка в DEX
107
  RUN java -cp d8.jar com.android.tools.r8.D8 \
108
  --release \
109
  --lib android.jar \
 
111
  --output . \
112
  b/liquidglass/LiquidGlass*.class
113
 
114
+ # 5. Вывод результата
115
  RUN mv classes.dex LiquidGlass.dex
116
 
117
+ # Выводим base64 в логи, чтобы ты мог скопировать его, если нет прямого доступа к файлу
118
+ CMD echo "--- COPY START ---" && base64 LiquidGlass.dex && echo "--- COPY END ---"