From 2abe0514839402e82c6b0508adae8f7147dfae70 Mon Sep 17 00:00:00 2001 From: Alberto Ponces Date: Sat, 20 Aug 2022 11:40:53 +0100 Subject: [PATCH] fix: no need to bundle assets on manager's side anymore --- .../app/revanced/manager/MainActivity.kt | 12 ++-- lib/services/patcher_api.dart | 55 +++++-------------- pubspec.yaml | 1 - 3 files changed, 20 insertions(+), 48 deletions(-) diff --git a/android/app/src/main/kotlin/app/revanced/manager/MainActivity.kt b/android/app/src/main/kotlin/app/revanced/manager/MainActivity.kt index 16e00a6c..fb4b9b5b 100644 --- a/android/app/src/main/kotlin/app/revanced/manager/MainActivity.kt +++ b/android/app/src/main/kotlin/app/revanced/manager/MainActivity.kt @@ -41,10 +41,10 @@ class MainActivity : FlutterActivity() { mainChannel.setMethodCallHandler { call, result -> when (call.method) { "loadPatches" -> { - val zipPatchBundlePath = call.argument("zipPatchBundlePath") + val jarPatchBundlePath = call.argument("jarPatchBundlePath") val cacheDirPath = call.argument("cacheDirPath") - if (zipPatchBundlePath != null && cacheDirPath != null) { - loadPatches(result, zipPatchBundlePath, cacheDirPath) + if (jarPatchBundlePath != null && cacheDirPath != null) { + loadPatches(result, jarPatchBundlePath, cacheDirPath) } else { result.notImplemented() } @@ -103,16 +103,16 @@ class MainActivity : FlutterActivity() { fun loadPatches( result: MethodChannel.Result, - zipPatchBundlePath: String, + jarPatchBundlePath: String, cacheDirPath: String ) { Thread( Runnable { patches.addAll( DexPatchBundle( - zipPatchBundlePath, + jarPatchBundlePath, DexClassLoader( - zipPatchBundlePath, + jarPatchBundlePath, cacheDirPath, null, javaClass.classLoader diff --git a/lib/services/patcher_api.dart b/lib/services/patcher_api.dart index 0786b353..b77d26b3 100644 --- a/lib/services/patcher_api.dart +++ b/lib/services/patcher_api.dart @@ -2,7 +2,6 @@ import 'dart:io'; import 'package:app_installer/app_installer.dart'; import 'package:device_apps/device_apps.dart'; import 'package:flutter/services.dart'; -import 'package:flutter_archive/flutter_archive.dart'; import 'package:injectable/injectable.dart'; import 'package:path_provider/path_provider.dart'; import 'package:revanced_manager/models/patch.dart'; @@ -22,7 +21,7 @@ class PatcherAPI { Directory? _tmpDir; Directory? _workDir; Directory? _cacheDir; - File? _zipPatchBundleFile; + File? _jarPatchBundleFile; File? _integrations; File? _inputFile; File? _patchedFile; @@ -42,27 +41,23 @@ class PatcherAPI { if (_cacheDir == null) { await initPatcher(); } - if (_zipPatchBundleFile == null) { - File? patchBundleDexFile = await _managerAPI.downloadPatches('.dex'); - File? patchBundleJarFile = await _managerAPI.downloadPatches('.jar'); - if (patchBundleDexFile != null && patchBundleJarFile != null) { - await joinPatchBundleFiles(patchBundleDexFile, patchBundleJarFile); - if (_zipPatchBundleFile != null) { - await patcherChannel.invokeMethod( - 'loadPatches', - { - 'zipPatchBundlePath': _zipPatchBundleFile!.path, - 'cacheDirPath': _cacheDir!.path, - }, - ); - } + if (_jarPatchBundleFile == null) { + _jarPatchBundleFile = await _managerAPI.downloadPatches('.jar'); + if (_jarPatchBundleFile != null) { + await patcherChannel.invokeMethod( + 'loadPatches', + { + 'jarPatchBundlePath': _jarPatchBundleFile!.path, + 'cacheDirPath': _cacheDir!.path, + }, + ); } } } Future> getFilteredInstalledApps() async { List filteredPackages = []; - if (_zipPatchBundleFile != null) { + if (_jarPatchBundleFile != null) { try { List? patchesPackages = await patcherChannel .invokeListMethod('getCompatiblePackages'); @@ -90,7 +85,7 @@ class PatcherAPI { PatchedApplication? selectedApp, ) async { List filteredPatches = []; - if (_zipPatchBundleFile != null && selectedApp != null) { + if (_jarPatchBundleFile != null && selectedApp != null) { try { var patches = await patcherChannel.invokeListMethod>( @@ -131,7 +126,7 @@ class PatcherAPI { PatchedApplication? selectedApp, ) async { List appliedPatches = []; - if (_zipPatchBundleFile != null && selectedApp != null) { + if (_jarPatchBundleFile != null && selectedApp != null) { try { var patches = await patcherChannel.invokeListMethod>( @@ -248,26 +243,4 @@ class PatcherAPI { await _rootAPI.deleteApp(patchedApp.packageName, patchedApp.apkFilePath); } } - - Future joinPatchBundleFiles( - File patchBundleDexFile, - File patchBundleJarFile, - ) async { - _zipPatchBundleFile = File('${_workDir!.path}/join.zip'); - Directory joinDir = Directory('${_cacheDir!.path}/join'); - try { - await ZipFile.extractToDirectory( - zipFile: patchBundleJarFile, - destinationDir: joinDir, - ); - patchBundleDexFile.copySync('${joinDir.path}/classes.dex'); - await ZipFile.createFromDirectory( - sourceDir: joinDir, - zipFile: _zipPatchBundleFile!, - recurseSubDirs: true, - ); - } on Exception { - _zipPatchBundleFile = null; - } - } } diff --git a/pubspec.yaml b/pubspec.yaml index decc0081..f0e7afd1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -21,7 +21,6 @@ dependencies: file_picker: ^5.0.1 flutter: sdk: flutter - flutter_archive: ^5.0.0 flutter_background: ^1.1.0 flutter_cache_manager: ^3.3.0 flutter_i18n: ^0.32.4