5.6 KiB
conf
All the config files for packs.
Every pack is built and installed according to a config file. A config file is supposed to be a simple shell script setting some variables and functions. It's not supposed to execute any command, which is important, as it is executed by both the building process on the building device and the flashing process on the flashing device.
All the config files are named as defconf-[name].txt
where [name]
is the argument you'll pass to build.sh
to build a pack using that config file.
The resdl-download.txt
file is a special config that is read by update.sh
to download all the relevant dynamic assets.
The rest of the files here are code snippets you might find useful to put in install actions.
For making your own pack and config file, check conf/custom-conf.md
.
Variables in defconf files
variant
: The name that will be in the filename of the released zip as well as will be shown on installation. It does not have to be related to the name of the defconf file (for example thedefconf-unlp.txt
file has variant "Backend" and creates theMinMicroG-Backend-*-*.zip
package). Any string without whitespace will do.ver
: The version number of the package, which is shown in the release filename and during installation. It can be anything except whitespace, but for convenience is integers along with decimals.verc
: The version code for the package. It's only really used in Magisk installations'smod.prop
, where Magisk compares it to decide if a version of the module is newer than the installed version. It strictly has to be an integer.date
: The date of releasing the specific pack version, shown on installation.minsdk
: The minimum Android SDK version the pack supports fully. It'll still install below that, but will show a warning to the user.modprop
: The variable containing the entirety of Magisk'smod.prop
, which will appear in your installed modules. Nothing really important here exceptverc
, which is described above, andid
, which has to be the same asmodname
variable fromupdate-binary
.stuff
,stuff_arch
,stuff_sdk
,stuff_arch_sdk
: Stuff variables are really space/tab-separated lists of all the objects (Relative to the root of the zip during flashing, or relative to eitherres
orresdl
directories in the build process) that are installed to be installed to device. It is going to be put through a for loop, so no whitespace is to be used in a single entry. Luckily, android system files aren't supposed to have spaces in their names/paths. For files instuff
, the file with that path is grabbed directly fromres
orresdl
(in ascending priority), while for the other arrays, the files are grabbed from$(dirname [path])/-*-/$(basename [path])
.stuff_util
: Same whitespace-separated list as above, but for things that should be grabbed fromres
orresdl
during building, but not placed during installation. Could be used for extra tools used in the hook funcs.stuff_other
,stuff_old
: Just lists of stuff from other packs and stuff that used to be in any of the packs that I made for organisation. They have no purpose other than to be merged instuff_uninstall
.stuff_uninstall
: Everything in this list is removed from system during a system installation and uninstallation. Should include everything in the pack, along with anything that used to be in it and anything that might be from alternative conflicting packs.stuff_debloat
: Anything not from these packs that might conflict with it. For example GApps, other location providers, etc. They are removed (and backed up) during a system install and pseudo-debloated during a Magisk install.stuff_perm
: Subdirectories of/system
on which permission are to be applied in case of a system installation. This variable exists because perming the whole system takes too long.
Functions in defconf files
pre_build_actions()
post_build_actions()
pre_install_actions()
post_install_actions()
pre_uninstall_actions()
post_uninstall_actions()
Pretty self explanatory. Leave them blank with a return 0
if there's no use for them, not having them at all will cause errors.
Variables in resdl-conf.txt
stuff_repos
: List of FDroid format app repositories that are to be downloaded and their contents used byupdate.sh
. First column has their names, which are to be unique and are the key to access them instuff_download
. Second column is the URL, to which appending "/index-v1.jar" should result in an object downloadable bycurl
.stuff_download
: List of actual objects that are put intoresdl
byupdate.sh
. First column is the filepath insideresdl
that it should be put in. Second column is the source that it comes from, which is one oflocal
,direct
,github
,gitlab
, orrepo
. Other columns depend upon the source and any extra columns are ignored. Forlocal
, third column is a path resolved against the repo directory from which the file iscp
'd to the destination. Fordirect
, the third column is a URL that must be downloadable usingcurl
. Forgithub
andgitlab
, the third column is[repo owner]/[repo name]
from which the newest file is grabbed from the releases page, optionally filtering only for the regex-enabled suffix in the fourth column if provided. For repo, it's the[repo key]/[package name]
of which the latest APK is grabbed, optionally filtering for the arch and minimum SDK if provided in the third column in the formatARCH:SDK
(one of these variables can be ommitted but not the colon).
Functions in resdl-conf file
pre_update_actions()
post_update_actions()
Again, they speak for themselves.