Skip to content

Commit

Permalink
feat: Support patching on ARMv7a
Browse files Browse the repository at this point in the history
Signed-off-by: validcube <pun.butrach@gmail.com>
  • Loading branch information
validcube committed Jul 29, 2024
1 parent 65feb34 commit a766352
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 11 deletions.
Binary file modified android/app/src/main/jniLibs/armeabi-v7a/libaapt2.so
Binary file not shown.
2 changes: 1 addition & 1 deletion assets/i18n/strings.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Patch",
"armv7WarningDialogText": "Patching on ARMv7 devices is not yet supported and might fail. Continue anyways?",
"incompatibleArchWarningDialogText": "Patching on this architecture is not yet supported and might fail. Continue anyways?",
"removedPatchesWarningDialogText": "The following patches have been removed since the last time you used them.\n\n${patches}\n\nContinue anyways?",
"requiredOptionDialogText": "Some patch options have to be set."
},
Expand Down
3 changes: 0 additions & 3 deletions docs/0_prerequisites.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@ To use ReVanced Manager, you need to fulfill certain requirements.
## 🤝 Requirements

- An Android device running Android 8 or higher
- Any device architecture except ARMv7[^1]

[^1]: Patching on ARMv7 is limited to bytecode patching but may work in certain circumstances for resource patching. You can check your device architecture in ReVanced Manager settings.

## ⏭️ What's next

Expand Down
2 changes: 1 addition & 1 deletion lib/ui/views/patcher/patcher_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class PatcherView extends StatelessWidget {
if (model.checkRequiredPatchOption(context)) {
final bool proceed = model.showRemovedPatchesDialog(context);
if (proceed && context.mounted) {
model.showArmv7WarningDialog(context);
model.showIncompatibleArchWarningDialog(context);
}
}
},
Expand Down
12 changes: 6 additions & 6 deletions lib/ui/views/patcher/patcher_viewmodel.dart
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class PatcherViewModel extends BaseViewModel {
FilledButton(
onPressed: () {
Navigator.of(context).pop();
showArmv7WarningDialog(context);
showIncompatibleArchWarningDialog(context);
},
child: Text(t.yesButton),
),
Expand Down Expand Up @@ -116,18 +116,18 @@ class PatcherViewModel extends BaseViewModel {
);
}

Future<void> showArmv7WarningDialog(BuildContext context) async {
final bool armv7 = await AboutInfo.getInfo().then((info) {
Future<void> showIncompatibleArchWarningDialog(BuildContext context) async {
final bool notSupported = await AboutInfo.getInfo().then((info) {
final List<String> archs = info['supportedArch'];
final supportedAbis = ['arm64-v8a', 'x86', 'x86_64'];
final supportedAbis = ['arm64-v8a', 'x86', 'x86_64', 'arm-v7a'];
return !archs.any((arch) => supportedAbis.contains(arch));
});
if (context.mounted && armv7) {
if (context.mounted && notSupported) {
return showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text(t.warning),
content: Text(t.patcherView.armv7WarningDialogText),
content: Text(t.patcherView.incompatibleArchWarningDialogText),
actions: <Widget>[
FilledButton(
onPressed: () => Navigator.of(context).pop(),
Expand Down

0 comments on commit a766352

Please sign in to comment.