Skip to content

Commit c271ca5

Browse files
v2.3.5-v23
1 parent c5434de commit c271ca5

File tree

8 files changed

+77
-45
lines changed

8 files changed

+77
-45
lines changed

README.md

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,8 @@ The current release is always attached to the OP of the [module support thread](
1212

1313

1414
## Usage
15-
After installing the module and rebooting, run the command `props` (as su) in a terminal emulator (you can find a one on [F-Droid](https://f-droid.org/) or in the [Play Store](https://play.google.com/store/apps)), and follow the instructions to set your desired options.
16-
```
17-
su
18-
props
19-
```
15+
After installing the module and rebooting, run the command `props` in a terminal emulator (you can find a one on [F-Droid](https://f-droid.org/) or in the [Play Store](https://play.google.com/store/apps)), and follow the instructions to set your desired options. If you use Termux, you'll have to call su before running the command.
16+
2017
You can also run the command with options. Use -h for details.
2118

2219

@@ -48,27 +45,28 @@ You can find the file to download in your device's forum on XDA Developers (eith
4845
Once you have the file downloaded, there are several different ways that the fingerprint can be found. In all cases you'll have to access the file somehow, and in most cases it's just a matter of unpackaging it. After that it depends on how the package is constructed.
4946

5047
- Sometimes there'll be a build.prop file directly in the zip/package. You'll likely find the fingerprint in there.
51-
- For some devices you'll have to unpackage the system.img to get to the build.prop file. On Windows, you can use something like [this tool](https://forum.xda-developers.com/showpost.php?p
48+
- For some devices you'll have to unpackage the system.img to get to the build.prop file. On Windows, you can use something like [this tool](https://forum.xda-developers.com/showpost.php?p=57742855&postcount=42). You'll also find more info in the [main thread for that post](https://forum.xda-developers.com/android/software-hacking/how-to-conver-lollipop-dat-files-to-t2978952).
5249
- Other times you'll find the fingerprint in META-INF\com\google\android\updater-script. Look for "Target:" and you'll likely find the fingerprint there.
5350
- Etc... Experiment, the fingerprint will be in there somewhere.
5451

5552
Take a look below for an example of what a device fingerprint looks like.
5653

5754
### Custom fingerprints list
58-
You can add your own fingerprint to the list by placing a file, named `printslist`, in the root of your internal storage with the fingerprint. It needs to be formated as follows:`device name
55+
You can add your own fingerprint to the list by placing a file, named `printslist`, in the root of your internal storage with the fingerprint. It needs to be formated as follows: `device name=fingerprint`.
5956
Here's an example:
6057
```
61-
Google Nexus 6
58+
Google Nexus 6=google/shamu/shamu:7.1.1/N8I11B/4171878:user/release-keys
6259
```
6360

61+
6462
### I still can't pass the ctsProfile check
6563
If you've picked a certified fingerprint from the provided list, or you're using a fingerprint that you know is certified but still can't pass the ctsProfile check, try one or more of the following:
6664
- First, do you pass basicIntegrity? If you don't, there's something else going on that this module can't help you with. Take a look under ["Miscellaneous MagiskHide issues"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#miscellaneous-magiskhide-issues) below.
6765
- Go into the script options and move the execution of the boot script to post-fs-data. See ["Boot stage"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#boot-stage) below.
6866
- Try a different fingerprint (pick one from the provided list).
6967
- Some ROMs will just not be able to pass the ctsProfile check, if they contain signs of a rooted/modified device that Magisk can't hide. Check in your ROM thread or with the creator/developer.
7068
- You might have remnants of previous modifications that trigger SafetyNet on your device. A clean install of your system may be required.
71-
- If you can't get things working, and want help, make sure to provide logs and details. See ["Logs, etc"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#logs-etc) below.
69+
- If you can't get things working, and want help, make sure to provide logs and details. See ["Logs"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#logs) below.
7270

7371

7472
## Keeping your device "certified"
@@ -86,7 +84,7 @@ The fingerprints list will update without the need to update the entire module.
8684

8785
Just run the `props` command and the list will be updated automatically. Use the -nw option to disable or disable it completely in the script settings (see ["Prop script settings"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#prop-script-settings) below). If you've disabled the this setting you can update the list manually in the `Edit device fingerprint` menu.
8886

89-
**_Current fingerprints list version - v22_**
87+
**_Current fingerprints list version - v23_**
9088

9189

9290
## Improved root hiding - Editing build.prop and default.prop
@@ -113,7 +111,7 @@ If you would like to delete a certain prop value from your system, that can be d
113111

114112

115113
## Prop script settings
116-
There are a couple of persistent options that you can set for the props script. These are currently "Boot stage", "Script colours" and "Fingerprints list check". The options are found under "Script settings" when running the props script. The settings menu can also be opened by using the -s option when running the props script (use -h for details).
114+
There are a couple of persistent options that you can set for the `props` script. These are currently "Boot stage", "Script colours" and "Fingerprints list check". The options are found under "Script settings" when running the `props` script. The settings menu can also be opened by using the -s option (use -h for details).
117115

118116
### Boot stage
119117
It's possible to move the execution of the boot script from the default late_start service to post-fs-data.d. This is required for the SafetyNet fix and custom props to work on some ROM/device combinations (known: LineageOS 15.1). The reason late_start service is default is that it's best to try to keep the number of scripts running during post-fs-data mode as low as possible, but if late_start service doesn't work, it needs to run in post-fs-data instead.
@@ -122,7 +120,7 @@ It's possible to move the execution of the boot script from the default late_sta
122120
This option will disable or enable colours for the `props` script.
123121

124122
### Fingerprints list check
125-
This option will disable or enable the automatic updating of the fingerprints list when the `props` script starts. If the fingerprints list check is disabled, the list can be manually updated from within the script, under the `Edit device fingerprint` menu, or with the -f option when running the props script (use -h for details).
123+
This option will disable or enable the automatic updating of the fingerprints list when the `props` script starts. If the fingerprints list check is disabled, the list can be manually updated from within the script, under the `Edit device fingerprint` menu, or with the -f option (use -h for details).
126124

127125

128126
## Configuration file
@@ -167,7 +165,7 @@ Place a file named `reset_mhpc` in /cache (or /data/cache on A/B devices) and re
167165
It is possible to use this in combination with the configuration file described above to keep device fingerprint or any other settings intact past the reset. Just make sure to remove any custom props that might have been causing issues from the configuration file.
168166

169167
## Logs
170-
In case of issues, please provide the logs by running the `props` script and selecting the "Collect logs" option (or running the `props` script with the -l command, use -h for details). All the relevant logs, together with the Magisk logs, the stock build.prop file and current prop values will be packaged into a file that'll be stored in the root of the device's internal storage, ready for attaching to a post in the [module support thread](https://forum.xda-developers.com/apps/magisk/module-magiskhide-props-config-t3789228), together with a detailed description of your problem.
168+
In case of issues, please provide the logs by running the `props` script and selecting the "Collect logs" option (or running the `props` script with the -l option, use -h for details). All the relevant logs and module files, together with the Magisk log, the stock build.prop file and current prop values will be packaged into a file that'll be stored in the root of the device's internal storage, ready for attaching to a post in the [module support thread](https://forum.xda-developers.com/apps/magisk/module-magiskhide-props-config-t3789228), together with a detailed description of your problem.
171169

172170
The logs will also automatically be saved to the root of the device's internal storage if there's an issue with the module scripts.
173171

@@ -186,6 +184,13 @@ If you can't run the `props` script for some reason, the logs are also stored in
186184

187185

188186
## Changelog
187+
### v2.3.5
188+
- Fixed issue with busybox version detection.
189+
- Fixed the documentation. Some parts had been accidentally deleted. Oops...
190+
- Improved log collecting.
191+
- Added and updated fingerprints for the Xiaomi Mi Note 2 and Redmi Note 5A Lite, list v23.
192+
- Minor improvements here and there. Hopefully I haven't broken something this time...
193+
189194
### v2.3.4
190195
- Updated for Busybox v1.29.1. Thank you @osm0sis.
191196
- Bugfixes. Because I'm blind.
@@ -301,7 +306,7 @@ If you can't run the `props` script for some reason, the logs are also stored in
301306

302307

303308
## Current fingerprints list
304-
### List v22 
309+
### List v23
305310
- Asus Zenfone 2 Laser (6.0.1)
306311
- Asus ZenPad S 8.0 (6.0.1)
307312
- Google Nexus 4 (5.1.1)
@@ -405,6 +410,7 @@ If you can't run the `props` script for some reason, the logs are also stored in
405410
- Xiaomi Redmi Note 4/4X (7.0)
406411
- Xiaomi Redmi Note 5/5 Plus (7.1.2)
407412
- Xiaomi Redmi Note 5 Pro (8.1.0)
413+
- Xiaomi Redmi Note 5A Lite (7.1.2)
408414
- ZTE Axon 7 (7.1.1)
409415
- ZTE Nubia Z17 (7.1.1)
410416
- Zuk Z2 Pro (7.0)

common/prints.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# MagiskHide Props Config
44
# By Didgeridoohan @ XDA Developers
55

6-
PRINTSV=22
6+
PRINTSV=23
77
PRINTSTRANSF=1
88

99
PRINTSFILE=/sdcard/printslist
@@ -105,14 +105,15 @@ Xiaomi Mi 6 (8.0.0)=Xiaomi/sagit/sagit:8.0.0/OPR1.170623.027/V9.2.3.0.OCAMIEK:us
105105
Xiaomi Mi A1 (8.0.0)=xiaomi/tissot/tissot_sprout:8.0.0/OPR1.170623.026/V.9.5.10.0.ODHMIFA:user/release-keys
106106
Xiaomi Mi Max 2 (7.1.1)=Xiaomi/oxygen/oxygen:7.1.1/NMF26F/V9.5.4.0.NDDMIFA:user/release-keys
107107
Xiaomi Mi Mix 2S (8.0.0)=Xiaomi/polaris/polaris:8.0.0/OPR1.170623.032/V9.5.19.0.ODGMIFA:user/release-keys
108-
Xiaomi Mi Note 2 (7.0)=Xiaomi/scorpio/scorpio:7.0/NRD90M/V9.2.1.0.NADMIEK:user/release-keys
108+
Xiaomi Mi Note 2 (8.0.0)=Xiaomi/scorpio/scorpio:8.0.0/OPR1.170623.032/V9.6.1.0.OADCNFD:user/release-keys
109109
Xiaomi Redmi 4 Prime (6.0.1)=Xiaomi/markw/markw:6.0.1/MMB29M/V9.5.3.0.MBEMIFA:user/release-keys
110110
Xiaomi Redmi 4X (6.0.1)=Xiaomi/santoni/santoni:6.0.1/MMB29M/V8.5.4.0.MAMCNED:user/release-keys
111111
Xiaomi Redmi Note 3 Pro (6.0.1)=Xiaomi/kenzo/kenzo:6.0.1/MMB29M/V8.2.1.0.MHOCNDL:user/release-keys
112112
Xiaomi Redmi Note 3 Pro SE (6.0.1)=Xiaomi/kate/kate:6.0.1/MMB29M/V8.1.3.0.MHRMIDI:user/release-keys
113113
Xiaomi Redmi Note 4/4X (7.0)=xiaomi/mido/mido:7.0/NRD90M/V9.2.1.0.NCFMIEK:user/release-keys
114114
Xiaomi Redmi Note 5/5 Plus (7.1.2)=xiaomi/vince/vince:7.1.2/N2G47H/V9.5.4.0.NEGMIFA:user/release-keys
115115
Xiaomi Redmi Note 5 Pro (8.1.0)=xiaomi/whyred/whyred:8.1.0/OPM1.171019.011/V9.5.6.0.OEIMIFA:user/release-keys
116+
Xiaomi Redmi Note 5A Lite (7.1.2)=xiaomi/ugglite/ugglite:7.1.2/N2G47H/V9.1.2.0.NDFMIEI:user/release-keys
116117
ZTE Axon 7 (7.1.1)=ZTE/P996A01_N/ailsa_ii:7.1.1/NMF26V/20171211.005949:user/release-keys
117118
ZTE Nubia Z17 (7.1.1)=nubia/NX563J/NX563J:7.1.1/NMF26X/eng.nubia.20171019.101529:user/release-keys
118119
Zuk Z2 Pro (7.0)=ZUK/z2_row/z2_row:7.0/NRD90M/2.5.435_170525:user/release-keys

common/propsconf_late

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@
99
# In that case, feel free to delete it.
1010

1111
# Script version
12-
SCRIPTV=11
12+
SCRIPTV=12
1313
SETTRANSF=1
1414

1515
# Variables
16-
IMGPATH=IMG_PLACEHOLDER
16+
COREPATH=CORE_PLACEHOLDER
17+
IMGPATH=$COREPATH/img
1718
MODPATH=$IMGPATH/MagiskHidePropsConf
1819
CACHELOC=CACHE_PLACEHOLDER
1920
LATELOGFILE=$CACHELOC/propsconf_latefile.log

common/propsconf_post

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
# In that case, feel free to delete it.
1010

1111
# Variables
12-
IMGPATH=IMG_PLACEHOLDER
12+
COREPATH=CORE_PLACEHOLDER
13+
IMGPATH=$COREPATH/img
1314
MODPATH=$IMGPATH/MagiskHidePropsConf
1415
POSTLOGFILE=$CACHELOC/propsconf_postfile.log
1516

common/util_functions.sh

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
# Variables
77
MODVERSION=VER_PLACEHOLDER
8+
MIRRORPATH=$COREPATH/mirror
89
POSTFILE=$IMGPATH/.core/post-fs-data.d/propsconf_post
910
LATEFILE=$IMGPATH/.core/service.d/propsconf_late
1011
SYSTEMLOC=SYSTEM_PLACEHOLDER
@@ -19,8 +20,9 @@ $CACHELOC/magisk.log
1920
$CACHELOC/magisk.log.bak
2021
/data/adb/magisk_debug.log
2122
$CACHELOC/propsconf*
22-
/sbin/.core/mirror/system/build.prop
23-
/sbin/.core/mirror/vendor/build.prop
23+
$MIRRORPATH/system/build.prop
24+
$MIRRORPATH/vendor/build.prop
25+
$LATEFILE
2426
"
2527
CONFFILE=$CACHELOC/propsconf_conf
2628
RESETFILE=$CACHELOC/reset_mhpc
@@ -126,8 +128,10 @@ log_start() {
126128
log_script_chk "Log start."
127129
}
128130
log_handler() {
129-
echo "" >> $LOGFILE
130-
echo -e "$(date +"%m-%d-%Y %H:%M:%S") - $1" >> $LOGFILE
131+
if [ $(id -u) == 0 ] ; then
132+
echo "" >> $LOGFILE
133+
echo -e "$(date +"%m-%d-%Y %H:%M:%S") - $1" >> $LOGFILE
134+
fi
131135
}
132136
log_print() {
133137
echo "$1"
@@ -338,13 +342,17 @@ orig_safe() {
338342
PROP=$(get_prop_type $V)
339343
FILEPROP=$(echo "CURR${PROP}" | tr '[:lower:]' '[:upper:]')
340344
FILEVALUE=$(eval "echo \$$FILEPROP")
341-
log_handler "Checking $FILEPROP=$FILEVALUE"
345+
log_handler "Checking ${FILEPROP}=${FILEVALUE}"
342346
safe_props $V $FILEVALUE
343347
if [ "$SAFE" == 0 ]; then
344348
log_handler "Prop $V set to triggering value in prop file."
345349
replace_fn FILESAFE 1 0 $LATEFILE
346350
else
347-
log_handler "Prop $V set to \"safe\" value in prop file."
351+
if [ -z "$FILEVALUE" ]; then
352+
log_handler "Could not retrieve value for prop $V."
353+
elif [ "$SAFE" == 1 ]; then
354+
log_handler "Prop $V set to \"safe\" value in prop file."
355+
fi
348356
fi
349357
done
350358
}
@@ -969,7 +977,23 @@ collect_logs() {
969977
esac
970978
cp -af $ITEM ${TMPLOGLOC}/${BPNAME} >> $LOGFILE
971979
else
972-
log_handler "$ITEM not available."
980+
case "$ITEM" in
981+
*/cache)
982+
if [ "$CACHELOC" == "/cache" ]; then
983+
CACHELOCTMP=/data/cache
984+
else
985+
CACHELOCTMP=/cache
986+
fi
987+
ITEMTPM=$(echo $ITEM | sed 's|$CACHELOC|$CACHELOCTMP|')
988+
if [ -f "$ITEMTPM" ]; then
989+
cp -af $ITEMTPM $TMPLOGLOC >> $LOGFILE
990+
else
991+
log_handler "$ITEM not available."
992+
fi
993+
;;
994+
*) log_handler "$ITEM not available."
995+
;;
996+
esac
973997
fi
974998
done
975999

config.sh

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ get_file_value() {
120120
}
121121

122122
# Variables
123-
BIMGPATH=/sbin/.core/img
123+
COREPATH=/sbin/.core
124+
BIMGPATH=$COREPATH/img
124125
$BOOTMODE && IMGPATH=$BIMGPATH || IMGPATH=$MOUNTPATH
125126
POSTPATH=$IMGPATH/.core/post-fs-data.d
126127
SERVICEPATH=$IMGPATH/.core/service.d
@@ -146,12 +147,6 @@ else
146147
BBARCH=$ARCH
147148
fi
148149
BBWWWPATH="https://raw.githubusercontent.com/Magisk-Modules-Repo/Busybox-Installer/master/busybox-${BBARCH}"
149-
BBPATH=/data/adb/magisk/busybox
150-
$BOOTMODE && alias grep="$BBPATH grep"
151-
$BOOTMODE && alias sed="$BBPATH sed"
152-
$BOOTMODE && alias tr="$BBPATH tr"
153-
$BOOTMODE && alias ls="$BBPATH ls"
154-
$BOOTMODE && alias wget="$BBPATH wget"
155150
SETTINGSLIST="
156151
FINGERPRINTENB
157152
PRINTEDIT
@@ -321,7 +316,7 @@ usnf_check() {
321316

322317
# Check for bin/xbin
323318
bin_check() {
324-
$BOOTMODE && BINCHECK=/sbin/.core/mirror/system/xbin || BINCHECK=/system/xbin
319+
$BOOTMODE && BINCHECK=$COREPATH/mirror/system/xbin || BINCHECK=/system/xbin
325320
if [ -d "$BINCHECK" ]; then
326321
BIN=xbin
327322
else
@@ -354,7 +349,7 @@ check_bb() {
354349
if [ -f "$IMGPATH/$MODID/busybox" ]; then
355350
BBV=$($IMGPATH/$MODID/busybox | grep "BusyBox v" | sed 's|.*BusyBox v||' | sed 's|-osm0sis.*||')
356351
log_handler "Current/installed busybox - v${BBCURR}/v${BBV}."
357-
if [ "$BBCURR" -le "$BBV" ]; then
352+
if [ "$(echo $BBCURR | sed 's|\.||g')" -le "$(echo $BBV | sed 's|\.||g')" ]; then
358353
log_handler "Backing up current busybox."
359354
cp -af $IMGPATH/$MODID/busybox $CACHELOC/busybox_post >> $INSTLOG
360355
fi
@@ -405,8 +400,8 @@ script_install() {
405400
placeholder_update $MODPATH/util_functions.sh CACHELOC CACHE_PLACEHOLDER "$CACHELOC"
406401
placeholder_update $MODPATH/util_functions.sh MODVERSION VER_PLACEHOLDER "$MODVERSION"
407402
placeholder_update $MODPATH/util_functions.sh BBWWWPATH BB_PLACEHOLDER "$BBWWWPATH"
408-
placeholder_update $POSTFILE IMGPATH IMG_PLACEHOLDER "$BIMGPATH"
409-
placeholder_update $LATEFILE IMGPATH IMG_PLACEHOLDER "$BIMGPATH"
410-
placeholder_update $MODPATH/system/$BIN/props IMGPATH IMG_PLACEHOLDER "$BIMGPATH"
403+
placeholder_update $POSTFILE COREPATH CORE_PLACEHOLDER "$COREPATH"
404+
placeholder_update $LATEFILE COREPATH CORE_PLACEHOLDER "$COREPATH"
405+
placeholder_update $MODPATH/system/$BIN/props COREPATH CORE_PLACEHOLDER "$COREPATH"
411406
}
412407

module.prop

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
id=MagiskHidePropsConf
22
name=MagiskHide Props Config
3-
version=v2.3.4-v22
4-
versionCode=20
3+
version=v2.3.5-v23
4+
versionCode=21
55
author=Didgeridoohan
66
description=Change your device's fingerprint, to pass SafetyNet's CTS Profile check. Edit prop files for better root hiding. Set/reset prop values set by MagiskHide. Change any prop values easily.
77
minMagisk=1500

system/binpath/props

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
# ================ Paths and variables ================
88
# =====================================================
99

10-
IMGPATH=IMG_PLACEHOLDER
10+
COREPATH=CORE_PLACEHOLDER
11+
IMGPATH=$COREPATH/img
1112
MODPATH=$IMGPATH/MagiskHidePropsConf
1213
LATEFILE=$IMGPATH/.core/service.d/propsconf_late
1314

@@ -1779,10 +1780,8 @@ reset_everything() {
17791780
# ====================================================
17801781

17811782
if [ $(id -u) != 0 ] ; then
1782-
log_handler "No superuser access."
1783-
menu_header "${C}This script must be run with\n superuser access. Try again.${N}"
1784-
echo ""
1785-
exit 0
1783+
su -c props "$@"
1784+
exit
17861785
fi
17871786

17881787
# ====================================================
@@ -1822,6 +1821,7 @@ if [ "$ISSUECHK" == 1 ]; then
18221821
collect_logs "issue"
18231822
reboot_fn "${ISSUETXT}\n\n If the issue persists after a reboot,\n please report the issue, ${R}with logs!${C}\n\n Logs have automatically been saved\n to your internal storage\n ${R}(propslogs.tar.gz)${C}.\n\n If the automatic collection failed,\n please collect the logs manually.\n\n ${G}See the documentation for details.${N}" "reset-script"
18241823
fi
1824+
18251825
# ==================================================
18261826
# ================= Busybox check ==================
18271827
# ==================================================
@@ -1852,6 +1852,7 @@ all_values
18521852

18531853
case "$1" in
18541854
-h)
1855+
log_handler "Showing help (-h)."
18551856
menu_header "${C}Help${N}"
18561857
echo ""
18571858
echo $(echo $(get_file_value $MODPATH/module.prop "description=") | sed 's|, |,\\n|g' | sed 's|\. |\.\\n|g')
@@ -1871,6 +1872,7 @@ case "$1" in
18711872
echo "See the module readme or the"
18721873
echo "support thread @ XDA for details."
18731874
echo ""
1875+
log_handler "Exiting... Bye bye.\n\n===================="
18741876
exit 0
18751877
;;
18761878
esac
@@ -1913,13 +1915,15 @@ if [ "$1" ]; then
19131915
*bo*|*bj*|*d*|*f*|*l*|*h*|*nc*|*nw*|*p*|*r*|*s*|*t*) # Do nothing
19141916
;;
19151917
*)
1918+
log_handler "Invalid option."
19161919
menu_header "${C}Help${N}"
19171920
echo ""
19181921
echo "${R}Invalid option.${N}"
19191922
echo ""
19201923
echo "Try again without options,"
19211924
echo "or use -h for help and details."
19221925
echo ""
1926+
log_handler "Exiting... Bye bye.\n\n===================="
19231927
exit 0
19241928
;;
19251929
esac

0 commit comments

Comments
 (0)