Skip to content

Commit 5d727d7

Browse files
committed
Remove magisk module internal update (ROOT)
1 parent 544ebf2 commit 5d727d7

File tree

7 files changed

+6
-758
lines changed

7 files changed

+6
-758
lines changed

app/build.gradle

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@ dependencies {
6969
implementation 'com.crossbowffs.remotepreferences:remotepreferences:0.5'
7070
implementation 'com.github.AndroidDeveloperLB:MaterialPreferenceLibrary:10'
7171
implementation 'com.lzy.net:okgo:3.0.4'
72-
implementation 'eu.chainfire:libsuperuser:1.1.0.202004101746'
73-
implementation 'net.lingala.zip4j:zip4j:1.3.2'
7472
implementation 'com.github.getActivity:Toaster:12.6'
7573
compileOnly 'de.robv.android.xposed:api:53'
7674
}

app/src/main/java/com/surcumference/fingerprint/Lang.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,8 @@ public static String getString(int res) {
248248
return tr("请开始你的表演, 日志已开始记录\n日志路径: %s", "請開始你的表演, 日誌已開始記錄\n日誌路徑: %s", "Star logging\nlog path: %s");
249249
case R.id.toast_stop_logging:
250250
return tr("表演结束, 请将日志文件分享给开发者\n日志路径: %s", "表演结束, 请将日志文件分享给开发者\n日誌路徑: %s", "Stop logging\nlog path: %s");
251+
case R.id.toast_update_available:
252+
return tr("请前往Magisk框架更新模块, 或进入Github(🪜)官网下载模块刷入", "請前往Magisk框架更新模組,或進入Github(🪜)官网下载模組刷入", "Please go to the Magisk framework to update the module, or visit the Github website to download and flash the module.");
251253
case R.id.template:
252254
return tr("", "", "");
253255
}

app/src/main/java/com/surcumference/fingerprint/network/update/UpdateFactory.java

Lines changed: 3 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,18 @@
2424
import com.surcumference.fingerprint.util.Config;
2525
import com.surcumference.fingerprint.util.FileUtils;
2626
import com.surcumference.fingerprint.util.Task;
27-
import com.surcumference.fingerprint.util.ZipUtils;
2827
import com.surcumference.fingerprint.util.log.L;
2928
import com.surcumference.fingerprint.view.DownloadView;
30-
import com.surcumference.fingerprint.view.MagiskInstPluginTargetSelectionView;
3129
import com.surcumference.fingerprint.view.MessageView;
32-
import com.surcumference.fingerprint.view.ShellExecuteView;
3330
import com.surcumference.fingerprint.view.UpdateInfoView;
3431

35-
import net.lingala.zip4j.exception.ZipException;
3632

3733
import java.io.File;
3834
import java.util.HashMap;
39-
import java.util.Iterator;
4035
import java.util.Locale;
4136
import java.util.Map;
4237
import java.util.concurrent.Callable;
4338

44-
import eu.chainfire.libsuperuser.Shell;
45-
4639
/**
4740
* Created by Jason on 2017/9/10.
4841
*/
@@ -124,86 +117,9 @@ public void onHasUpdate(UpdateInfo updateInfo) {
124117
}
125118

126119
private static void handleMagiskUpdate(Context context, UpdateInfo updateInfo, DialogInterface updateInfoViewDialogInterface) {
127-
Task.onBackground(() -> {
128-
if (!Shell.SU.available()) {
129-
if (!Shell.SU.available()) {
130-
Task.onMain(() -> new MessageView(context).text(Lang.getString(R.id.update_no_root)).showInDialog());
131-
return;
132-
}
133-
}
134-
Task.onMain(() -> {
135-
MagiskInstPluginTargetSelectionView instPluginTargetSelectionView = new MagiskInstPluginTargetSelectionView(context);
136-
instPluginTargetSelectionView.showInDialog();
137-
instPluginTargetSelectionView.withOnPositiveButtonClickListener((dialog, which) -> {
138-
Map<PluginTarget, Boolean> instPluginTargetSelectionMap = instPluginTargetSelectionView.getSelection();
139-
L.d("instPluginTargetSelectionMap", instPluginTargetSelectionMap);
140-
if (!instPluginTargetSelectionMap.values().contains(true)) {
141-
Toaster.showShort(Lang.getString(R.id.update_at_least_select_one));
142-
return;
143-
}
144-
dialog.dismiss();
145-
String fileName = context.getPackageName() + ".zip";
146-
File cacheDir = context.getCacheDir();
147-
File targetFile = new File(cacheDir, fileName);
148-
File unzipDir = new File(cacheDir, BuildConfig.APPLICATION_ID);
149-
Runnable cleanTask = () -> {
150-
FileUtils.delete(targetFile);
151-
FileUtils.delete(unzipDir);
152-
};
153-
cleanTask.run();
154-
String mirrorUrl = String.format(Locale.getDefault(), Constant.UPDATE_URL_MIRROR_FILE, updateInfo.version, updateInfo.name);
155-
new DownloadView(context)
156-
.download(new String[]{mirrorUrl, updateInfo.url}, targetFile, updateInfo.size, () -> {
157-
updateInfoViewDialogInterface.dismiss();
158-
ShellExecuteView shellExecuteView = new ShellExecuteView(context);
159-
shellExecuteView.showInDialog();
160-
Task.onBackground(() -> {
161-
try {
162-
unzipDir.mkdirs();
163-
try {
164-
ZipUtils.unzip(targetFile, unzipDir.getAbsolutePath(), "");
165-
} catch (ZipException e) {
166-
L.e(e);
167-
Task.onMain(() -> new MessageView(context).text(Lang.getString(R.id.update_file_corrupted)).showInDialog());
168-
return;
169-
}
170-
171-
File[] moduleZipFiles = unzipDir.listFiles();
172-
Map<PluginTarget, File> moduleFilePluginTargetMap = matchMagiskModuleFileListToPluginTarget(moduleZipFiles);
173-
L.d("moduleFilePluginTargetMap", moduleFilePluginTargetMap);
174-
if (moduleFilePluginTargetMap.size() <= 0) {
175-
Task.onMain(() -> new MessageView(context).text(Lang.getString(R.id.update_file_missing)).showInDialog());
176-
return;
177-
}
178-
Iterator<Map.Entry<PluginTarget, Boolean>> it = instPluginTargetSelectionMap.entrySet().iterator();
179-
while (it.hasNext()) {
180-
Map.Entry<PluginTarget, Boolean> entry = it.next();
181-
PluginTarget pluginTarget = entry.getKey();
182-
boolean selected = (boolean)entry.getValue();
183-
if (!selected) {
184-
continue;
185-
}
186-
File moduleFile = moduleFilePluginTargetMap.get(pluginTarget);
187-
if (moduleFile == null) {
188-
continue;
189-
}
190-
String command = String.format("magisk --install-module \"%s\"", moduleFile.getAbsolutePath());
191-
int installModuleResult = shellExecuteView.executeCommand(command);
192-
if (installModuleResult != 0) {
193-
Task.onMain(()-> shellExecuteView.appendCommandLineOutput(Lang.getString(R.id.update_installation_failed) + installModuleResult + "\n请尝试前往更新页面手动获取更新"));
194-
return;
195-
}
196-
}
197-
Task.onMain(()-> shellExecuteView.appendCommandLineOutput(Lang.getString(R.id.update_success_note)));
198-
} finally {
199-
cleanTask.run();
200-
}
201-
});
202-
}).showInDialog();
203-
204-
});
205-
});
206-
});
120+
com.surcumference.fingerprint.util.UrlUtils.openUrl(context, updateInfo.pageUrl);
121+
Task.onMain(1000, () -> Toaster.showLong(Lang.getString(R.id.toast_update_available)));
122+
updateInfoViewDialogInterface.dismiss();
207123
}
208124

209125
private static Map<PluginTarget, File> matchMagiskModuleFileListToPluginTarget(@Nullable File[] moduleZipFiles) {

0 commit comments

Comments
 (0)