Skip to content
This repository was archived by the owner on Sep 1, 2021. It is now read-only.

Commit 15bb1df

Browse files
committed
+ 3.9.10 适配 Magisk 20.4
1 parent a63c9b3 commit 15bb1df

File tree

13 files changed

+173
-190
lines changed

13 files changed

+173
-190
lines changed

.gitignore

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,5 @@
1111
/captures
1212
/out
1313
.externalNativeBuild
14-
elf-cleaner.sh
15-
settings.gradle
16-
.cxx
14+
.cxx
15+
module.gradle

module.gradle

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
ext {
2+
moduleId = "module_xfingerprint_pay_wechat"
3+
riruApiVersion = 4
4+
5+
moduleProp = [
6+
name : "指纹支付 - 微信",
7+
version : "v3.9.10",
8+
versionCode: "1",
9+
author : "Jason Eric",
10+
description: "让微信支持指纹支付 Fingerprint pay for WeChat.",
11+
api : riruApiVersion
12+
]
13+
14+
magiskModuleProp = [
15+
id : "riru-${moduleId.replace('_', '-')}",
16+
name : "Riru - ${moduleProp['name']}",
17+
version : moduleProp['version'],
18+
versionCode: moduleProp['versionCode'],
19+
author : moduleProp['author'],
20+
description: moduleProp['description']
21+
]
22+
}

module/build.gradle

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
apply plugin: 'com.android.library'
2+
apply from: file(rootProject.file('module.gradle'))
23

34
android {
45
compileSdkVersion rootProject.ext.targetSdkVersion
56
defaultConfig {
67
minSdkVersion rootProject.ext.minSdkVersion
78
targetSdkVersion rootProject.ext.targetSdkVersion
9+
10+
externalNativeBuild {
11+
cmake {
12+
arguments "-DMODULE_NAME:STRING=riru_$moduleId"
13+
}
14+
}
815
ndk {
916
abiFilters "armeabi-v7a", 'arm64-v8a', 'x86', 'x86_64'
1017
}
@@ -17,29 +24,10 @@ android {
1724
}
1825
}
1926

20-
def moduleId = "module_xfingerprint_pay_wechat"
21-
def moduleProp = [
22-
name : "指纹支付 - 微信",
23-
version : "v3.9.7",
24-
versionCode: "1",
25-
author : "Jason Eric",
26-
description: "让微信支持指纹支付 Fingerprint pay for wechat.",
27-
api : 4
28-
]
29-
30-
def magiskModuleProp = [
31-
id : "riru-${moduleId.replace('_', '-')}",
32-
name : "Riru - ${moduleProp['name']}",
33-
version : moduleProp['version'],
34-
versionCode: moduleProp['versionCode'],
35-
author : moduleProp['author'],
36-
description: moduleProp['description']
37-
]
38-
3927
def outDir = file("$rootDir/out")
4028
def magiskDir = file("$outDir/magisk_module")
41-
def zipName = "magisk-${magiskModuleProp['id']}-${magiskModuleProp['version']}.zip"
42-
def riruDir = "$magiskDir/data/misc/riru/modules/${moduleId}"
29+
def zipName = "magisk-${magiskModuleProp['id'].replace('_', '-')}-${magiskModuleProp['version']}.zip"
30+
def riruDir = "$magiskDir/riru"
4331

4432
import java.nio.file.Files
4533
import java.security.MessageDigest
@@ -58,6 +46,8 @@ static def renameOrFail(File from, File to) {
5846
}
5947
}
6048

49+
import org.apache.tools.ant.filters.FixCrLfFilter
50+
6151
android.libraryVariants.all { variant ->
6252
def task = variant.assembleProvider.get()
6353
task.doLast {
@@ -68,6 +58,19 @@ android.libraryVariants.all { variant ->
6858
copy {
6959
from "$rootDir/template/magisk_module"
7060
into magiskDir.path
61+
exclude 'riru.sh'
62+
}
63+
// copy riru.sh
64+
copy {
65+
from "$rootDir/template/magisk_module"
66+
into magiskDir.path
67+
include 'riru.sh'
68+
filter { line ->
69+
line.replaceAll('%%%RIRU_MODULE_ID%%%', moduleId)
70+
.replaceAll('%%%RIRU_MIN_API_VERSION%%%', riruApiVersion.toString())
71+
}
72+
filter(FixCrLfFilter.class,
73+
eol: FixCrLfFilter.CrLf.newInstance("lf"))
7174
}
7275
// copy .git files manually since gradle exclude it by default
7376
Files.copy(file("$rootDir/template/magisk_module/.gitattributes").toPath(), file("${magiskDir.path}/.gitattributes").toPath())
@@ -100,7 +103,7 @@ android.libraryVariants.all { variant ->
100103
file("$magiskDir/system/framework").mkdirs()
101104
copy {
102105
from zipTree('libs/fingerprint-pay-wechat-magisk.apk')
103-
rename('classes.dex', 'libxfingerprint_pay_wechat.dex')
106+
rename('classes.dex', 'libriru_module_xfingerprint_pay_wechat.dex')
104107
into file("$magiskDir/system/framework")
105108
include 'classes.dex'
106109
}
3 Bytes
Binary file not shown.

module/src/main/cpp/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
cmake_minimum_required(VERSION 3.4.1)
22

3-
set(MODULE_NAME "riru_module_xfingerprint_pay_wechat")
3+
if (NOT DEFINED MODULE_NAME)
4+
message(FATAL_ERROR "MODULE_NAME is not set")
5+
endif ()
46

57
message("Build type: ${CMAKE_BUILD_TYPE}")
68

module/src/main/cpp/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,9 @@ EXPORT int nativeForkAndSpecializePost(JNIEnv *env, jclass clazz, jint res) {
127127
char appCacheDir[PATH_MAX] = {0};
128128
snprintf(appCacheDir, PATH_MAX - 1, "%s/cache", sAppDataDir);
129129

130-
const char *dexPath = "/data/local/tmp/libxfingerprint_pay_wechat.dex";
130+
const char *dexPath = "/data/local/tmp/libriru_module_xfingerprint_pay_wechat.dex";
131131
if (access(dexPath, 0) != 0) {
132-
dexPath = "/system/framework/libxfingerprint_pay_wechat.dex";
132+
dexPath = "/system/framework/libriru_module_xfingerprint_pay_wechat.dex";
133133
}
134134
loadDex(env,
135135
env->NewStringUTF(dexPath),

run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ set -e
33
cd ${0%/*}
44
./gradlew clean
55
./gradlew :module:assembleRelease
6-
adb shell rm -f "/data/local/tmp/libxfingerprint_pay_wechat.dex"
6+
adb shell rm -f "/data/local/tmp/libriru_module_xfingerprint_pay_wechat.dex"
77
adb push ./out/*.zip /sdcard/Download/

template/magisk_module/.gitattributes

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ META-INF/** text eol=lf
33
*.prop text eol=lf
44
*.sh text eol=lf
55
*.md text eol=lf
6-
sepolicy.rule eol=lf
6+
sepolicy.rule text eol=lf
77

88
# Denote all files that are truly binary and should not be modified.
99
system/** binary

template/magisk_module/customize.sh

Lines changed: 47 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,67 @@
11
SKIPUNZIP=1
2-
RIRU_PATH="/data/misc/riru"
3-
RIRU_MODULES_PATH="$RIRU_PATH/modules"
4-
5-
# check architecture
6-
if [[ "$ARCH" != "arm" && "$ARCH" != "arm64" && "$ARCH" != "x86" && "$ARCH" != "x64" ]]; then
7-
abort "! Unsupported platform: $ARCH"
8-
else
9-
ui_print "- Device platform: $ARCH"
10-
fi
11-
12-
# check Riru version
13-
if [[ ! -f "$RIRU_PATH/api_version" ]]; then
14-
ui_print "*********************************************************"
15-
ui_print "! 'Riru - Core' is not installed"
16-
ui_print "! You can download from 'Magisk Manager' or https://github.com/RikkaApps/Riru/releases"
17-
abort "*********************************************************"
18-
fi
19-
RIRU_API_VERSION=$(cat "$RIRU_PATH/api_version")
20-
ui_print "- Riru API version: $RIRU_API_VERSION"
21-
if [[ "$RIRU_API_VERSION" -lt 4 ]]; then
22-
ui_print "*********************************************************"
23-
ui_print "! The latest version of 'Riru - Core' is required"
24-
ui_print "! You can download from 'Magisk Manager' or https://github.com/RikkaApps/Riru/releases"
25-
abort "*********************************************************"
26-
fi
272

283
# extract verify.sh
4+
ui_print "- Extracting verify.sh"
295
unzip -o "$ZIPFILE" 'verify.sh' -d "$TMPDIR" >&2
30-
if [[ ! -f "$TMPDIR/verify.sh" ]]; then
31-
ui_print "*********************************************************"
32-
ui_print "! Unable to extract verify.sh!"
33-
ui_print "! This zip may be corrupted, please try downloading again"
34-
abort "*********************************************************"
6+
if [ ! -f "$TMPDIR/verify.sh" ]; then
7+
ui_print "*********************************************************"
8+
ui_print "! Unable to extract verify.sh!"
9+
ui_print "! This zip may be corrupted, please try downloading again"
10+
abort_clean "*********************************************************"
3511
fi
3612
. $TMPDIR/verify.sh
3713

14+
# extract riru.sh
15+
extract "$ZIPFILE" 'riru.sh' "$MODPATH"
16+
. $MODPATH/riru.sh
17+
18+
check_riru_version
19+
check_architecture
20+
3821
# extract libs
3922
ui_print "- Extracting module files"
40-
vunzip -o "$ZIPFILE" 'module.prop' 'post-fs-data.sh' 'uninstall.sh' -d "$MODPATH"
4123

42-
if [[ "$ARCH" == "x86" || "$ARCH" == "x64" ]]; then
43-
ui_print "- Extracting x86/64 libraries"
44-
vunzip -o "$ZIPFILE" 'system_x86/*' -d "$MODPATH"
24+
extract "$ZIPFILE" 'module.prop' "$MODPATH"
25+
extract "$ZIPFILE" 'post-fs-data.sh' "$MODPATH"
26+
extract "$ZIPFILE" 'uninstall.sh' "$MODPATH"
27+
#extract "$ZIPFILE" 'sepolicy.rule' "$MODPATH"
28+
29+
if [ "$ARCH" = "x86" ] || [ "$ARCH" = "x64" ]; then
30+
ui_print "- Extracting x86 libraries"
31+
extract "$ZIPFILE" "system_x86/lib/libriru_$RIRU_MODULE_ID.so" "$MODPATH"
4532
mv "$MODPATH/system_x86/lib" "$MODPATH/system/lib"
46-
mv "$MODPATH/system_x86/lib64" "$MODPATH/system/lib64"
33+
34+
if [ "$IS64BIT" = true ]; then
35+
ui_print "- Extracting x64 libraries"
36+
extract "$ZIPFILE" "system_x86/lib64/libriru_$RIRU_MODULE_ID.so" "$MODPATH"
37+
mv "$MODPATH/system_x86/lib64" "$MODPATH/system/lib64"
38+
fi
4739
else
48-
ui_print "- Extracting arm/arm64 libraries"
49-
vunzip -o "$ZIPFILE" 'system/*' -d "$MODPATH"
50-
fi
40+
ui_print "- Extracting arm libraries"
41+
extract "$ZIPFILE" "system/lib/libriru_$RIRU_MODULE_ID.so" "$MODPATH"
5142

52-
if [[ "$IS64BIT" == "false" ]]; then
53-
ui_print "- Removing 64-bit libraries"
54-
rm -rf "$MODPATH/system/lib64"
43+
if [ "$IS64BIT" = true ]; then
44+
ui_print "- Extracting arm64 libraries"
45+
extract "$ZIPFILE" "system/lib64/libriru_$RIRU_MODULE_ID.so" "$MODPATH"
46+
fi
5547
fi
5648

49+
ui_print "- Extracting extra libraries"
50+
extract "$ZIPFILE" "system/framework/libriru_$RIRU_MODULE_ID.dex" "$MODPATH"
51+
5752
# Riru files
5853
ui_print "- Extracting extra files"
59-
unzip -o "$ZIPFILE" 'data/*' -d "$TMPDIR" >&2
60-
[[ -d "$RIRU_MODULES_PATH" ]] || mkdir -p "$RIRU_MODULES_PATH" || abort "! Can't mkdir -p $RIRU_MODULES_PATH"
61-
cp -af "$TMPDIR$RIRU_MODULES_PATH/." "$RIRU_MODULES_PATH" || abort "! Can't cp -af $TMPDIR$RIRU_MODULES_PATH/. $RIRU_MODULES_PATH"
54+
[ -d "$RIRU_MODULE_PATH" ] || mkdir -p "$RIRU_MODULE_PATH" || abort_clean "! Can't create $RIRU_MODULE_PATH"
55+
56+
# set permission just in case
57+
set_perm "$RIRU_PATH" 0 0 0700
58+
set_perm "$RIRU_PATH/modules" 0 0 0700
59+
set_perm "$RIRU_MODULE_PATH" 0 0 0700
60+
set_perm "$RIRU_MODULE_PATH/bin" 0 0 0700
61+
62+
rm -f "$RIRU_MODULE_PATH/module.prop.new"
63+
extract "$ZIPFILE" 'riru/module.prop.new' "$RIRU_MODULE_PATH" true
64+
set_perm "$RIRU_MODULE_PATH/module.prop.new" 0 0 0600
6265

6366
# set permissions
6467
ui_print "- Setting permissions"
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
#!/system/bin/sh
22
MODDIR=${0%/*}
3-
MODULE_ID="module_xfingerprint_pay_wechat"
3+
[ ! -f "$MODDIR/riru.sh" ] && exit 1
4+
. $MODDIR/riru.sh
45

56
# Reset context jsut in case
67
chcon -R u:object_r:system_file:s0 "$MODDIR"
78

89
# Rename module.prop.new
9-
if [ -f "/data/misc/riru/modules/$MODULE_ID/module.prop.new" ]; then
10-
rm "/data/misc/riru/modules/$MODULE_ID/module.prop"
11-
mv "/data/misc/riru/modules/$MODULE_ID/module.prop.new" "/data/misc/riru/modules/$MODULE_ID/module.prop"
10+
if [ -f "$RIRU_MODULE_PATH/module.prop.new" ]; then
11+
rm "$RIRU_MODULE_PATH/module.prop"
12+
mv "$RIRU_MODULE_PATH/module.prop.new" "$RIRU_MODULE_PATH/module.prop"
1213
fi

0 commit comments

Comments
 (0)