Revision history for MagiskModuleIssues


Revision [768]

Last edited on 2019-11-09 13:54:57 by didgeridoohan
Additions:
It's also possible that someone's already built a Core Only Magisk and is providing a patched boot image for your device. Check out your device forum on [[https://forum.xda-developers.com | XDA]].


Revision [766]

Edited on 2019-11-01 08:38:33 by didgeridoohan
Additions:
@@[[Magisk | -- To the top/main article --]]@@
Deletions:
>>{{{toc}}}>>@@[[Magisk | -- To the top/main article --]]@@


Revision [765]

Edited on 2019-11-01 08:38:05 by didgeridoohan
Additions:
>>{{{toc}}}>>@@[[Magisk | -- To the top/main article --]]@@
Deletions:
@@[[Magisk | -- To the top/main article --]]@@


Revision [751]

Edited on 2019-10-17 00:51:31 by didgeridoohan
Additions:
Another option is to build your own custom version of Magisk that has Core Only Mode enabled by default. Here's an example of how to do that, by XDA Recognised Contributor [[https://forum.xda-developers.com/member.php?u=5346465 | Tulsadiver]]: https://forum.xda-developers.com/showpost.php?p=80418753&postcount=3
Other than that, one of the only options available to you if no custom recovery is available, is to wipe /data (factory reset).
Deletions:
Other than that, one of the only options available to you if no custom recovery is available, is to wipe /data (factory reset). Another option is to build your own custom version of Magisk that has Core Only Mode enabled by default, patch the device boot image with the custom Manager and then flash the patched image to your device.


Revision [732]

Edited on 2019-10-15 15:39:55 by didgeridoohan
Deletions:
@@{{image url="https://img.shields.io/badge/-PayPal-blue.svg" title="" alt="PayPal"}}
Please don't hesitate to [[https://www.paypal.me/didgeridoohan | support the work involved]] in keeping this guide alive.@@
----


Revision [725]

Edited on 2019-10-13 08:12:49 by didgeridoohan
Additions:
If you have a working Magisk installation, but a module causes Magisk, the Magisk Manager or your device to not function properly (bootloop, loss of root, etc), see //Disabling/uninstalling modules manually// below.
===**Disabling/uninstalling modules manually**===
Deletions:
If you have a working Magisk installation, but a module causes Magisk, the Magisk Manager or your device to not function properly (bootloop, loss of root, etc), see //Uninstalling modules manually// below.
===**Uninstalling modules manually**===


Revision [723]

Edited on 2019-10-12 05:43:40 by didgeridoohan
Additions:
Since Magisk v19.4, there's an adb command that can be used to uninstall all modules on your device. If the device is bootlooping or simply haning on the boot animation you have a good chance that you can use this command to get up and running again.
Hook your device up to a computer (or other device you can run adb from) and execute the following command:
%%adb wait-for-device shell magisk --remove-modules%%
After that you can start your device and as soon as adb is available the command will activate, the modules will be removed and the device will reboot. Hopefully to a working system, sans modules. There's of course a chance that the troublesome module has done something that the command can't remove...
Other than that, one of the only options available to you if no custom recovery is available, is to wipe /data (factory reset). Another option is to build your own custom version of Magisk that has Core Only Mode enabled by default, patch the device boot image with the custom Manager and then flash the patched image to your device.
Deletions:
For now, one of the only options available to you if no custom recovery is available is to wipe /data (factory reset). There's also a possibility that you can build your own custom version of Magisk that has Core Only Mode enabled by default, patch the device boot image with the custom Manager and then flash the patched image to your device.


Revision [717]

Edited on 2019-09-11 01:11:32 by didgeridoohan
Additions:
For now, one of the only options available to you if no custom recovery is available is to wipe /data (factory reset). There's also a possibility that you can build your own custom version of Magisk that has Core Only Mode enabled by default, patch the device boot image with the custom Manager and then flash the patched image to your device.
Deletions:
For now, one of the only options available to you if no custom recovery of available is to wipe /data (factory reset). There's also a possibility that you can build your own custom version of Magisk that has Core Only Mode enabled by default, patch the device boot image with the custom Manager and then flash the patched image to your device.


Revision [716]

Edited on 2019-09-11 01:09:36 by didgeridoohan
Additions:
For now, one of the only options available to you if no custom recovery of available is to wipe /data (factory reset). There's also a possibility that you can build your own custom version of Magisk that has Core Only Mode enabled by default, patch the device boot image with the custom Manager and then flash the patched image to your device.


Revision [712]

Edited on 2019-08-21 15:52:33 by didgeridoohan
Additions:
The tips below all rely on having a custom recovery, like TWRP, for your device. If you do not have one installed (or don't want one installed) but there is one available for your device it's a good idea to keep it handy to at least be able to fastboot boot it.
Deletions:
Three tips below all rely on having a custom recovery, like TWRP, for your device. If you do not have one installed (or don't want one installed) but there is one available for your device it's a good idea to keep it handy to at least be able to fastboot boot it.


Revision [697]

Edited on 2019-08-02 01:29:20 by didgeridoohan
Additions:
There are also a few different module managers for custom recoveries available (take a look over at [[https://forum.xda-developers.com/apps/magisk | XDA]]). These might make it easier for you to manage any installed modules when you can't boot your device, but personally I feel that it's easier to do all this yourself through the recovery file manager.
Deletions:
There are also a few different module managers for custom recoveries available (take a look over at [[https://forum.xda-developers.com | XDA]]). These might make it easier for you to manage any installed modules when you can't boot your device, but personally I feel that it's easier to do all this yourself through the recovery file manager.


Revision [696]

Edited on 2019-08-02 01:28:28 by didgeridoohan [Reverted to previous revision]
Additions:
@@{{image url="https://img.shields.io/badge/-PayPal-blue.svg" title="" alt="PayPal"}}
Deletions:
/apps/magiskimage url="https://img.shields.io/badge/-PayPal-blue.svg" title="" alt="PayPal"}}


Revision [695]

Edited on 2019-08-02 01:28:17 by didgeridoohan [Reverted to previous revision]
Additions:
/apps/magiskimage url="https://img.shields.io/badge/-PayPal-blue.svg" title="" alt="PayPal"}}
Deletions:
@@{{image url="https://img.shields.io/badge/-PayPal-blue.svg" title="" alt="PayPal"}}


Revision [694]

Edited on 2019-08-02 01:27:16 by didgeridoohan [Reverted to previous revision]
Additions:
There are also a few different module managers for custom recoveries available (take a look over at [[https://forum.xda-developers.com | XDA]]). These might make it easier for you to manage any installed modules when you can't boot your device, but personally I feel that it's easier to do all this yourself through the recovery file manager.
Deletions:
There are also a few different module managers for custom recoveries available (take a look over at [https://forum.xda-developers.com | XDA]]). These might make it easier for you to manage any installed modules when you can't boot your device, but personally I feel that it's easier to do all this yourself through the recovery file manager.


Revision [693]

Edited on 2019-08-02 01:26:43 by didgeridoohan [Reverted to previous revision]
Additions:
===**Can't uninstall module**===
If a module, for some reason, can't be uninstalled from the Manager toy can do this manually. See //Uninstalling modules manually// below.
If you have a working Magisk installation, but a module causes Magisk, the Magisk Manager or your device to not function properly (bootloop, loss of root, etc), see //Uninstalling modules manually// below.
===**Uninstalling modules manually**===
Three tips below all rely on having a custom recovery, like TWRP, for your device. If you do not have one installed (or don't want one installed) but there is one available for your device it's a good idea to keep it handy to at least be able to fastboot boot it.
This is my prefered method, manually removing a troublesome module through a custom recovery. Boot to recovery and use the file explorer to navigate to /data/adb/modules (if you don't have access to /data in recovery, try using the //"Disable all modules"// method below). You now have a couple of options to remove the module:
==**Recovery Module Managers**==
There are also a few different module managers for custom recoveries available (take a look over at [https://forum.xda-developers.com | XDA]]). These might make it easier for you to manage any installed modules when you can't boot your device, but personally I feel that it's easier to do all this yourself through the recovery file manager.
Deletions:
If you have a working Magisk installation, but a module causes Magisk, the Magisk Manager or your device to not function properly (bootloop, loss of root, etc), here's a couple of tips:
First of all, if you do not have a custom recovery installed on your device, it might be good idea to have one handy so you can at least boot it. When rooting, a custom recovery often makes life so much easier. If you do have a custom recovery, you can skip this part and keep reading below.
If your device do not have a functioning custom recovery available, you might not have many options. The only way out of an issue that causes the device not to boot is to alter the Magisk files in some way (see more below). For this you need to access /data/adb, something that you need root access to do. Without a custom recovery, that's likely not going to happen... The only viable option in this case is to reset your device and wipe /data so that the troublesome module in /data/adb/modules is removed. After that you can again set everything up to your liking and install Magisk again. Pro tip: always keep a backup of any important data, especially rooting and modifying your device.
This is my prefered method, manually removing the troublesome module through a custom recovery. Boot to recovery and use the file explorer to navigate to /data/adb/modules (if you don't have access to /data in recovery, try using the //"Disable all modules"// method below). You now have a couple of options to remove the module:


Revision [660]

Edited on 2019-07-22 14:27:35 by didgeridoohan [Reverted to previous revision]
Additions:
@@{{image url="https://img.shields.io/badge/-PayPal-blue.svg" title="" alt="PayPal"}}
Please don't hesitate to [[https://www.paypal.me/didgeridoohan | support the work involved]] in keeping this guide alive.@@
----


Revision [644]

Edited on 2019-07-12 01:05:37 by didgeridoohan [Reverted to previous revision]
Additions:
- Navigate to the module's directory under /data/adb/modules and rename any file in there to "remove" (or "disable", just remember the file name in case you want to return to normal before actually removing the module).
- Simply delete the module's folder under /data/adb/modules. This is the last resort since it won't run any uninstall script that the module might use.
Deletions:
- Navigate to the modules directory under /data/adb/modules and rename any file in there to "remove" (or "disable", just remember the file name in case you want to return to normal before actually removing the module).
- Simply delete the modules folder under /data/adb/modules. This is the last resort since it won't run any uninstall script that the module might use.


Revision [643]

Edited on 2019-07-12 01:04:48 by didgeridoohan [Reverted to previous revision]
Additions:
- Simply delete the modules folder under /data/adb/modules. This is the last resort since it won't run any uninstall script that the module might use.
If you create the "remove" or "disable" files, Magisk will take care of removing or disabling the module on the next reboot. Uninstalling the module this way is the preferred way, since it will also run any uninstall script that the module is using.
Deletions:
- Simply delete the modules folder under /data/adb/modules.
If you create the "remove" or "disable" files, Magisk will take care of removing or disabling the module on the next reboot.


Revision [609]

Edited on 2019-05-02 03:20:29 by didgeridoohan [Reverted to previous revision]
Additions:
If the module works, just navigate to the module folder under /data/adb/modules and delete the “update” file. If it keeps happening when installing modules post the installation logs, Magisk log and possibly a [[https://www.xda-developers.com/guide-sending-a-logcat-to-help-debug-your-favorite-app/ | logcat]] from the installation in the [[https://forum.xda-developers.com/apps/magisk/mod-magisk-v1-universal-systemless-t3432382 | support thread]] //(also see [[MagiskHelp | "Asking for help/reporting bugs"]])//.
If the module doesn’t work and hasn’t installed properly. Navigate to /data/adb/modules, delete the module folder and try again. If it still doesn’t work post the installation logs, magisk_debug.log and possibly a [[https://www.xda-developers.com/guide-sending-a-logcat-to-help-debug-your-favorite-app/ | logcat]] from the installation in the [[https://forum.xda-developers.com/apps/magisk/mod-magisk-v1-universal-systemless-t3432382 | support thread]] //(also see [[MagiskHelp | "Asking for help/reporting bugs"]])//.
If your device do not have a functioning custom recovery available, you might not have many options. The only way out of an issue that causes the device not to boot is to alter the Magisk files in some way (see more below). For this you need to access /data/adb, something that you need root access to do. Without a custom recovery, that's likely not going to happen... The only viable option in this case is to reset your device and wipe /data so that the troublesome module in /data/adb/modules is removed. After that you can again set everything up to your liking and install Magisk again. Pro tip: always keep a backup of any important data, especially rooting and modifying your device.
This is my prefered method, manually removing the troublesome module through a custom recovery. Boot to recovery and use the file explorer to navigate to /data/adb/modules (if you don't have access to /data in recovery, try using the //"Disable all modules"// method below). You now have a couple of options to remove the module:
- Simply delete the modules folder under /data/adb/modules.
- Navigate to the modules directory under /data/adb/modules and rename any file in there to "remove" (or "disable", just remember the file name in case you want to return to normal before actually removing the module).
- In terminal you can use the [[https://www.computerhope.com/unix/utouch.htm | touch command]]: type (without quotation marks) "touch /data/adb/modules/<module folder>/remove" (or “/data/adb/modules/<module folder>/disable”, depending on your preference).
There are also several available terminal/Aroma based recovery type managers available for handling this. Take a look in the Magisk forums.
Deletions:
==**Magisk image not mounted properly**==
Sometimes the Magisk image is mounted read-only (run the command “mount | grep “/sbin/.magisk/img” in terminal to see if it’s rw or ro. This can cause issues with installing modules. A different kernel is one possible solution.
It can also be caused by your device having a faulty f2fs implementation //(also see "Issues with f2fs" below)//, or that the Magisk image is corrupt. Easiest way to fix this the last scenario is to run the Magisk uninstaller and start from the beginning.
==**merge.img failed**==
If there's an error when installing a module along the lines of "mounting merge.img failed" your device might have issues with the file system, possibly a known f2fs bug (see below).
==**Issues with f2fs**==
There are some devices that have a faulty implementation of the f2fs file system. These may include Motorola, Lenovo and others. These devices can’t mount the Magisk image properly leading to issues with module installation and possibly superuser access. You might see something like this in the module installation log or the Magisk log:
%%mount /dev/block/loop->/sbin/.magisk/img failed with 13: Permission denied%%
Finding a kernel with the f2fs bug fixed is one solution and if possible probably the best one. Formating your /data partition as ext4 is another, but some devices won’t be able to boot if /data isn’t formated with f2fs. There’s also the [[https://forum.xda-developers.com/apps/magisk/guide-magisk-official-version-including-t3577875 | F2FS Loopback Bug Workaround module]] by [[https://forum.xda-developers.com/member.php?u=5228676 | VR25]] that you can try. It moves the Magisk image to the /cache partition instead of /data and may solve issues like this (won't work if /cache is f2fs).
If you see the above error but don't have /data formatted to f2fs, there might be something wrong with how the Magisk image is mounted //(see "Magisk image not mounted properly" above)//.
If the module works, just navigate to the module folder under /sbin/.magisk/img and delete the “update” file. If it keeps happening when installing modules post the installation logs, Magisk log and possibly a [[https://www.xda-developers.com/guide-sending-a-logcat-to-help-debug-your-favorite-app/ | logcat]] from the installation in the [[https://forum.xda-developers.com/apps/magisk/mod-magisk-v1-universal-systemless-t3432382 | support thread]] //(also see [[MagiskHelp | "Asking for help/reporting bugs"]])//.
If the module doesn’t work and hasn’t installed properly. Navigate to /sbin/.magisk/img, delete the module folder and try again. If it still doesn’t work post the installation logs, magisk_debug.log and possibly a [[https://www.xda-developers.com/guide-sending-a-logcat-to-help-debug-your-favorite-app/ | logcat]] from the installation in the [[https://forum.xda-developers.com/apps/magisk/mod-magisk-v1-universal-systemless-t3432382 | support thread]] //(also see [[MagiskHelp | "Asking for help/reporting bugs"]])//.
If your device do not have a functioning custom recovery available, you might not have many options. The only way out of an issue that causes the device not to boot is to alter the Magisk image in some way (see more below). For this you need to access /data/adb, something that you need root access to do. Without a custom recovery, that's likely not going to happen... The only viable option in this case is to reset your device and wipe /data so that the Magisk image in /data/adb is removed. After that you can again set everything up to your liking and install Magisk again. Pro tip: always keep a backup of any important data, especially rooting and modifying your device.
This is my prefered method, manually removing the troublesome module through a custom recovery. Boot to recovery and flash the [[https://forum.xda-developers.com/showthread.php?t=2239421 | SUmount script]]. This mounts the Magisk image to /magisk and it can be accessed as any other directory. You now have a couple of options to remove the module:
- Simply delete the modules folder under the image mount path and reboot.
- Navigate to the modules directory under the image mount path and rename any file in there to "remove" (or "disable", just remember the file name in case you want to return to normal later).
- In terminal you can use the [[https://www.computerhope.com/unix/utouch.htm | touch command]]: type (without quotation marks) "touch /<image mount path>/<module folder>/remove" (or “/<image mount path>/<module folder>/disable”, depending on your preference).
Another option is to use the [[https://forum.xda-developers.com/showpost.php?p=72542167&postcount=242 | Magisk Module Uninstaller]], by [[https://forum.xda-developers.com/member.php?u=7296895 | veez21]], from the [[https://forum.xda-developers.com/apps/magisk/collection-magisk-modules-v2-t3575758 | Collection of Magisk modules v2]] or the [[https://forum.xda-developers.com/apps/magisk/module-tool-magisk-manager-recovery-mode-t3693165 | Magisk Manager for Recovery Mode]] by [[https://forum.xda-developers.com/member.php?u=5228676 | VR25]].
If you get an error in recovery when flashing [[https://forum.xda-developers.com/showthread.php?t=2239421 | SUmount script]] it might mean your Magisk image has become corrupted. Check the recovery log for details. Easiest way to fix this is to run the Magisk uninstaller and start from the beginning. It might also be possible to use fsck in terminal in recovery or through ADB. Google it (and check the recovery log for details).
==**Delete the Magisk image**==
If nothing else works, deleting the Magisk image (/data/adb/magisk.img) should. If you do not have proper access to /data, this can also be done by wiping the /data partition which in turn means that you'd better have a backup of anything important...


Revision [585]

Edited on 2019-02-15 09:38:33 by didgeridoohan [Reverted to previous revision]
Additions:
It might be that you're trying to flash a module with an outdated module template. Usually Magisk supports one version backwards of the current [[https://github.com/topjohnwu/magisk-module-template | module template]]. Most of the times you can tell that this is the issue by the error message telling you to install an older version of Magisk than the version you have installed. In other words, the module needs an update.
Deletions:
It might be that you're trying to flash a module with an outdated module template. Usually Magisk supports one version backwards of the current [[https://github.com/topjohnwu/magisk-module-template | module template]]. Most of the times you can tell that this is the issue by the error message telling you to install an older version of Magisk than the version you have installed.


Revision [577]

Edited on 2019-02-10 02:10:33 by didgeridoohan [Reverted to previous revision]
Additions:
It might be that you're trying to flash a module with an outdated module template. Usually Magisk supports one version backwards of the current [[https://github.com/topjohnwu/magisk-module-template | module template]]. Most of the times you can tell that this is the issue by the error message telling you to install an older version of Magisk than the version you have installed.
Deletions:
It might be that you're trying to flash a module with an outdated module template. Usually Magisk supports one version backwards of the current [[https://github.com/topjohnwu/magisk-module-template | module template]]. The current minimum module template is 1500. Most of the times you can tell that this is the issue by the error message telling you to install an older version of Magisk than the version you have installed.


Revision [558]

Edited on 2019-01-01 14:27:02 by didgeridoohan [Reverted to previous revision]
Additions:
@@[[Magisk | -- To the top/main article --]]@@
Deletions:
[[Magisk | -- To the top/main article --]]@@


Revision [557]

Edited on 2019-01-01 14:26:30 by didgeridoohan [Reverted to previous revision]
Additions:
[[Magisk | -- To the top/main article --]]@@
==**merge.img failed**==
If there's an error when installing a module along the lines of "mounting merge.img failed" your device might have issues with the file system, possibly a known f2fs bug (see below).
Deletions:
@@[[Magisk | -- To the top/main article --]]@@


Revision [552]

Edited on 2018-12-22 02:58:54 by didgeridoohan [Reverted to previous revision]
Additions:
If you see the above error but don't have /data formatted to f2fs, there might be something wrong with how the Magisk image is mounted //(see "Magisk image not mounted properly" above)//.


Revision [551]

Edited on 2018-12-22 02:55:53 by didgeridoohan [Reverted to previous revision]
Additions:
It can also be caused by your device having a faulty f2fs implementation //(also see "Issues with f2fs" below)//, or that the Magisk image is corrupt. Easiest way to fix this the last scenario is to run the Magisk uninstaller and start from the beginning.
==**Issues with f2fs**==
There are some devices that have a faulty implementation of the f2fs file system. These may include Motorola, Lenovo and others. These devices can’t mount the Magisk image properly leading to issues with module installation and possibly superuser access. You might see something like this in the module installation log or the Magisk log:
%%mount /dev/block/loop->/sbin/.magisk/img failed with 13: Permission denied%%
Finding a kernel with the f2fs bug fixed is one solution and if possible probably the best one. Formating your /data partition as ext4 is another, but some devices won’t be able to boot if /data isn’t formated with f2fs. There’s also the [[https://forum.xda-developers.com/apps/magisk/guide-magisk-official-version-including-t3577875 | F2FS Loopback Bug Workaround module]] by [[https://forum.xda-developers.com/member.php?u=5228676 | VR25]] that you can try. It moves the Magisk image to the /cache partition instead of /data and may solve issues like this (won't work if /cache is f2fs).
Deletions:
It can also be caused by your device having a faulty f2fs implementation //(see [[MagiskIssues | "Issues with f2fs"]])//, or that the Magisk image is corrupt. Easiest way to fix this the last scenario is to run the Magisk uninstaller and start from the beginning.


Revision [544]

Edited on 2018-12-16 22:17:45 by didgeridoohan [Reverted to previous revision]
Additions:
If nothing else works, deleting the Magisk image (/data/adb/magisk.img) should. If you do not have proper access to /data, this can also be done by wiping the /data partition which in turn means that you'd better have a backup of anything important...
Deletions:
If nothing else works, deleting the Magisk image (/data/adb/magisk.img) should.


Revision [543]

Edited on 2018-12-16 22:15:13 by didgeridoohan [Reverted to previous revision]
Additions:
==**Delete the Magisk image**==


Revision [523]

Edited on 2018-12-09 04:15:05 by didgeridoohan [Reverted to previous revision]
Additions:
Make sure you haven't enabled "Magisk Core Only Mode" in the Manager settings. This option disables all modules and only keeps the core functions of Magisk active (""MagiskSU"" and MagiskHide). If you do not have "Magisk Core Only Mode" enabled, there's likely something wrong with your Magisk installation and you need to figure out what. Post details and logs in the [[https://forum.xda-developers.com/apps/magisk/mod-magisk-v1-universal-systemless-t3432382 | support thread]] //(also see [[MagiskHelp | "Asking for help/reporting bugs"]])//.
You can also disable all Magisk modules by enabling "Magisk Core Only Mode" in Manager settings. This keeps only the core functions of Magisk active (""MagiskSU"" and MagiskHide). If you can't boot your device, this can be done by placing a file in /cache (/data/cache on A/B devices) named //".disable_magisk"// (without quotation marks and with the leading dot). This will enable Core Only Mode and you can boot up your device, uninstall the troublesome module and then go into the Manager settings, disable Core Only Mode and reboot. In TWRP you can create the file through the TWRP terminal with the [[https://www.computerhope.com/unix/utouch.htm | touch command]], see below for an example.
Deletions:
Make sure you haven't enabled "Magisk Core Only Mode" in the Manager settings. This option disables all modules and only keeps the core functions of Magisk active (""MagiskSU"", MagiskHide, systemless hosts). If you do not have "Magisk Core Only Mode" enabled, there's likely something wrong with your Magisk installation and you need to figure out what. Post details and logs in the [[https://forum.xda-developers.com/apps/magisk/mod-magisk-v1-universal-systemless-t3432382 | support thread]] //(also see [[MagiskHelp | "Asking for help/reporting bugs"]])//.
You can also disable all Magisk modules by enabling "Magisk Core Only Mode" in Manager settings. This keeps only the core functions of Magisk active (""MagiskSU"", MagiskHide, systemless hosts). If you can't boot your device, this can be done by placing a file in /cache (/data/cache on A/B devices) named //".disable_magisk"// (without quotation marks and with the leading dot). This will enable Core Only Mode and you can boot up your device, uninstall the troublesome module and then go into the Manager settings, disable Core Only Mode and reboot. In TWRP you can create the file through the TWRP terminal with the [[https://www.computerhope.com/unix/utouch.htm | touch command]], see below for an example.


Revision [521]

Edited on 2018-12-09 04:12:04 by didgeridoohan [Reverted to previous revision]
Additions:
Sometimes the Magisk image is mounted read-only (run the command “mount | grep “/sbin/.magisk/img” in terminal to see if it’s rw or ro. This can cause issues with installing modules. A different kernel is one possible solution.
If the module works, just navigate to the module folder under /sbin/.magisk/img and delete the “update” file. If it keeps happening when installing modules post the installation logs, Magisk log and possibly a [[https://www.xda-developers.com/guide-sending-a-logcat-to-help-debug-your-favorite-app/ | logcat]] from the installation in the [[https://forum.xda-developers.com/apps/magisk/mod-magisk-v1-universal-systemless-t3432382 | support thread]] //(also see [[MagiskHelp | "Asking for help/reporting bugs"]])//.
If the module doesn’t work and hasn’t installed properly. Navigate to /sbin/.magisk/img, delete the module folder and try again. If it still doesn’t work post the installation logs, magisk_debug.log and possibly a [[https://www.xda-developers.com/guide-sending-a-logcat-to-help-debug-your-favorite-app/ | logcat]] from the installation in the [[https://forum.xda-developers.com/apps/magisk/mod-magisk-v1-universal-systemless-t3432382 | support thread]] //(also see [[MagiskHelp | "Asking for help/reporting bugs"]])//.
Deletions:
Sometimes the Magisk image is mounted read-only (run the command “mount | grep “/sbin/.core/img” in terminal to see if it’s rw or ro. This can cause issues with installing modules. A different kernel is one possible solution.
If the module works, just navigate to the module folder under /sbin/.core/img and delete the “update” file. If it keeps happening when installing modules post the installation logs, Magisk log and possibly a [[https://www.xda-developers.com/guide-sending-a-logcat-to-help-debug-your-favorite-app/ | logcat]] from the installation in the [[https://forum.xda-developers.com/apps/magisk/mod-magisk-v1-universal-systemless-t3432382 | support thread]] //(also see [[MagiskHelp | "Asking for help/reporting bugs"]])//.
If the module doesn’t work and hasn’t installed properly. Navigate to /sbin/.core/img, delete the module folder and try again. If it still doesn’t work post the installation logs, magisk_debug.log and possibly a [[https://www.xda-developers.com/guide-sending-a-logcat-to-help-debug-your-favorite-app/ | logcat]] from the installation in the [[https://forum.xda-developers.com/apps/magisk/mod-magisk-v1-universal-systemless-t3432382 | support thread]] //(also see [[MagiskHelp | "Asking for help/reporting bugs"]])//.


Revision [512]

Edited on 2018-12-07 03:30:56 by didgeridoohan [Reverted to previous revision]
Additions:
The drawback to the this method is that it will disable all your Magisk modules, not just the one causing issues. If you don't want to do this, you can use the following method to uninstall only the troublesome module.
Deletions:
The drawback to the above method is that it will disable all your Magisk modules, not just the one causing issues. If you don't want to do this, you can use the following method to uninstall only the troublesome module.


Revision [511]

Edited on 2018-12-07 03:28:37 by didgeridoohan [Reverted to previous revision]
Additions:
This is my prefered method, manually removing the troublesome module through a custom recovery. Boot to recovery and flash the [[https://forum.xda-developers.com/showthread.php?t=2239421 | SUmount script]]. This mounts the Magisk image to /magisk and it can be accessed as any other directory. You now have a couple of options to remove the module:
You can also disable all Magisk modules by enabling "Magisk Core Only Mode" in Manager settings. This keeps only the core functions of Magisk active (""MagiskSU"", MagiskHide, systemless hosts). If you can't boot your device, this can be done by placing a file in /cache (/data/cache on A/B devices) named //".disable_magisk"// (without quotation marks and with the leading dot). This will enable Core Only Mode and you can boot up your device, uninstall the troublesome module and then go into the Manager settings, disable Core Only Mode and reboot. In TWRP you can create the file through the TWRP terminal with the [[https://www.computerhope.com/unix/utouch.htm | touch command]], see below for an example.
Deletions:
First, you can disable all Magisk modules by enabling "Magisk Core Only Mode" in Manager settings. This disables all modules and only keeps the core functions of Magisk active (""MagiskSU"", MagiskHide, systemless hosts). If you can't boot your device, this can be done by placing a file in /cache (/data/cache on A/B devices) named //".disable_magisk"// (without quotation marks and with the leading dot). This will enable Core Only Mode and you can boot up your device, uninstall the troublesome module and then go into the Manager settings, disable Core Only Mode and reboot. In TWRP you can create the file through the TWRP terminal with the [[https://www.computerhope.com/unix/utouch.htm | touch command]], see below for an example.
Boot to recovery and flash the [[https://forum.xda-developers.com/showthread.php?t=2239421 | SUmount script]]. This mounts the Magisk image to /magisk and it can be accessed as any other directory. You now have a couple of options to remove the module:


Revision [503]

Edited on 2018-11-27 05:31:10 by didgeridoohan [Reverted to previous revision]
Additions:
It might be that you're trying to flash a module with an outdated module template. Usually Magisk supports one version backwards of the current [[https://github.com/topjohnwu/magisk-module-template | module template]]. The current minimum module template is 1500. Most of the times you can tell that this is the issue by the error message telling you to install an older version of Magisk than the version you have installed.
Deletions:
It might be that you're trying to flash a module with an outdated module template. Usually Magisk supports one version backwards of the current [[https://github.com/topjohnwu/magisk-module-template | module template]]. The current minimum module template is 1500. Most of the times you can tell that this is the issue by the error message telling you to install an older version of Magisk than you have installed.


Revision [502]

Edited on 2018-11-27 05:30:34 by didgeridoohan [Reverted to previous revision]
Additions:
Make sure you haven't enabled "Magisk Core Only Mode" in the Manager settings. This option disables all modules and only keeps the core functions of Magisk active (""MagiskSU"", MagiskHide, systemless hosts). If you do not have "Magisk Core Only Mode" enabled, there's likely something wrong with your Magisk installation and you need to figure out what. Post details and logs in the [[https://forum.xda-developers.com/apps/magisk/mod-magisk-v1-universal-systemless-t3432382 | support thread]] //(also see [[MagiskHelp | "Asking for help/reporting bugs"]])//.
Deletions:
Make sure you haven't enabled "Magisk Core Only Mode" in the Manager settings. This option disables all modules and only keeps the core functions of Magisk active (""MagiskSU"", MagiskHide, systemless hosts).


Revision [501]

Edited on 2018-11-27 05:27:51 by didgeridoohan [Reverted to previous revision]
Additions:
==**No custom recovery**==
First of all, if you do not have a custom recovery installed on your device, it might be good idea to have one handy so you can at least boot it. When rooting, a custom recovery often makes life so much easier. If you do have a custom recovery, you can skip this part and keep reading below.
If your device do not have a functioning custom recovery available, you might not have many options. The only way out of an issue that causes the device not to boot is to alter the Magisk image in some way (see more below). For this you need to access /data/adb, something that you need root access to do. Without a custom recovery, that's likely not going to happen... The only viable option in this case is to reset your device and wipe /data so that the Magisk image in /data/adb is removed. After that you can again set everything up to your liking and install Magisk again. Pro tip: always keep a backup of any important data, especially rooting and modifying your device.


Revision [475]

Edited on 2018-10-20 17:38:02 by didgeridoohan [Reverted to previous revision]
Additions:
Boot to recovery and flash the [[https://forum.xda-developers.com/showthread.php?t=2239421 | SUmount script]]. This mounts the Magisk image to /magisk and it can be accessed as any other directory. You now have a couple of options to remove the module:
Deletions:
Boot to recovery and flash the SUmount script //(see [[MagiskInstallation | “Things to keep on your device”]])//. This mounts the Magisk image to /magisk and it can be accessed as any other directory. You now have a couple of options to remove the module:


Revision [474]

Edited on 2018-10-20 06:13:06 by didgeridoohan [Reverted to previous revision]
Additions:
==**Zip is not a Magisk module**==
Deletions:
==**Not a Magisk zip**==


Revision [473]

Edited on 2018-10-18 06:45:58 by didgeridoohan [Reverted to previous revision]
Additions:
If the Manager does not have storage permissions there will be issues with module installation. It should automatically ask for permission when needed, but if this doesn’t work, give the permission manually.
==**Process error**==
If there's a //"process error"// when installing a module it is usually caused by the Manager not having storage permission //(see above)//. It might also be fixed by clearing data for the Manager.
Deletions:
If the Manager does not have storage permissions there will be issues with module installation. It should automatically ask for permission when needed, but if this doesn’t work, give the permission manually. This is also true if you see a “process error” when trying to install a module.


Revision [467]

Edited on 2018-10-16 13:13:37 by didgeridoohan [Reverted to previous revision]
Additions:
Boot to recovery and flash the SUmount script //(see [[MagiskInstallation | “Things to keep on your device”]])//. This mounts the Magisk image to /magisk and it can be accessed as any other directory. You now have a couple of options to remove the module:
If you get an error in recovery when flashing [[https://forum.xda-developers.com/showthread.php?t=2239421 | SUmount script]] it might mean your Magisk image has become corrupted. Check the recovery log for details. Easiest way to fix this is to run the Magisk uninstaller and start from the beginning. It might also be possible to use fsck in terminal in recovery or through ADB. Google it (and check the recovery log for details).
Deletions:
Boot to recovery and flash the Mount Magisk zip //(see [[MagiskInstallation | “Things to keep on your device”]])//. This mounts the Magisk image to /magisk and it can be accessed as any other directory. You now have a couple of options to remove the module:
If you get an error in recovery when flashing [[https://forum.xda-developers.com/apps/magisk/collection-magisk-modules-v2-t3575758 | Mount Magisk zip]] it might mean your Magisk image has become corrupted. Check the recovery log for details. Easiest way to fix this is to run the Magisk uninstaller and start from the beginning. It might also be possible to use fsck in terminal in recovery or through ADB. Google it (and check the recovery log for details).


Revision [406]

Edited on 2018-09-01 01:33:12 by didgeridoohan [Reverted to previous revision]
Additions:
First, you can disable all Magisk modules by enabling "Magisk Core Only Mode" in Manager settings. This disables all modules and only keeps the core functions of Magisk active (""MagiskSU"", MagiskHide, systemless hosts). If you can't boot your device, this can be done by placing a file in /cache (/data/cache on A/B devices) named //".disable_magisk"// (without quotation marks and with the leading dot). This will enable Core Only Mode and you can boot up your device, uninstall the troublesome module and then go into the Manager settings, disable Core Only Mode and reboot. In TWRP you can create the file through the TWRP terminal with the [[https://www.computerhope.com/unix/utouch.htm | touch command]], see below for an example.
Deletions:
First, you can disable all Magisk modules by enabling "Magisk Core Only Mode" in Manager settings. This disables all modules and only keeps the core functions of Magisk active (MagiskSU, MagiskHide, systemless hosts). If you can't boot your device, this can be done by placing a file in /cache (/data/cache on A/B devices) named //".disable_magisk"// (without quotation marks and with the leading dot). This will enable Core Only Mode and you can boot up your device, uninstall the troublesome module and then go into the Manager settings, disable Core Only Mode and reboot. In TWRP you can create the file through the TWRP terminal with the [[https://www.computerhope.com/unix/utouch.htm | touch command]], see below for an example.


Revision [405]

Edited on 2018-09-01 01:32:58 by didgeridoohan [Reverted to previous revision]
Additions:
Make sure you haven't enabled "Magisk Core Only Mode" in the Manager settings. This option disables all modules and only keeps the core functions of Magisk active (""MagiskSU"", MagiskHide, systemless hosts).
Deletions:
Make sure you haven't enabled "Magisk Core Only Mode" in the Manager settings. This option disables all modules and only keeps the core functions of Magisk active (MagiskSU, MagiskHide, systemless hosts).


Revision [390]

Edited on 2018-08-15 05:52:53 by didgeridoohan [Reverted to previous revision]
Additions:
If the module works, just navigate to the module folder under /sbin/.core/img and delete the “update” file. If it keeps happening when installing modules post the installation logs, Magisk log and possibly a [[https://www.xda-developers.com/guide-sending-a-logcat-to-help-debug-your-favorite-app/ | logcat]] from the installation in the [[https://forum.xda-developers.com/apps/magisk/mod-magisk-v1-universal-systemless-t3432382 | support thread]] //(also see [[MagiskHelp | "Asking for help/reporting bugs"]])//.
Deletions:
If the module works, just navigate to the module folder under /sbin/.core/img and delete the “update” file. If it keeps happening when installing modules post the installation logs, magisk_debug.log and possibly a [[https://www.xda-developers.com/guide-sending-a-logcat-to-help-debug-your-favorite-app/ | logcat]] from the installation in the [[https://forum.xda-developers.com/apps/magisk/mod-magisk-v1-universal-systemless-t3432382 | support thread]] //(also see [[MagiskHelp | "Asking for help/reporting bugs"]])//.


Revision [369]

Edited on 2018-07-25 14:05:22 by didgeridoohan [Reverted to previous revision]
Additions:
Sometimes the Magisk image is mounted read-only (run the command “mount | grep “/sbin/.core/img” in terminal to see if it’s rw or ro. This can cause issues with installing modules. A different kernel is one possible solution.
It can also be caused by your device having a faulty f2fs implementation //(see [[MagiskIssues | "Issues with f2fs"]])//, or that the Magisk image is corrupt. Easiest way to fix this the last scenario is to run the Magisk uninstaller and start from the beginning.
Deletions:
Another issue when installing modules may be that your device has a faulty f2fs implementation //(see [[MagiskIssues | "Issues with f2fs"]])//, that the Magisk image is mounted read-only (run the command “mount | grep “/sbin/.core/img” in terminal to see if it’s rw or ro. A different kernel might fix this) or that the Magisk image is corrupt. Easiest way to fix this is to run the Magisk uninstaller and start from the beginning, or use fsck. Google it…


Revision [360]

Edited on 2018-07-19 15:40:13 by didgeridoohan [Reverted to previous revision]
Additions:
==**Not a Magisk zip**==
==**Magisk Manager storage permission**==
==**Corrupt zip**==
==**Magisk image not mounted properly**==
==**Unable to extract zip**==
==**Logs, etc**==
==**Disable all modules**==
==**Uninstall/delete/disable modules from recovery**==
Deletions:
**Not a Magisk zip**
**Magisk Manager storage permission**
**Corrupt zip**
**Magisk image not mounted properly**
**Unable to extract zip**
**Logs, etc**
**Disable all modules**
**Uninstall/delete/disable modules from recovery**


Revision [359]

Edited on 2018-07-19 15:39:37 by didgeridoohan [Reverted to previous revision]
Additions:
==**Outdated template**==
Deletions:
**Outdated template**


Revision [358]

Edited on 2018-07-19 15:39:20 by didgeridoohan [Reverted to previous revision]
Additions:
**Outdated template**
It might be that you're trying to flash a module with an outdated module template. Usually Magisk supports one version backwards of the current [[https://github.com/topjohnwu/magisk-module-template | module template]]. The current minimum module template is 1500. Most of the times you can tell that this is the issue by the error message telling you to install an older version of Magisk than you have installed.
**Not a Magisk zip**
**Magisk Manager storage permission**
**Corrupt zip**
**Magisk image not mounted properly**
**Unable to extract zip**
**Logs, etc**
**Disable all modules**
**Uninstall/delete/disable modules from recovery**
Deletions:
It might be that you're trying to flash a module with an outdated module template. Usually Magisk supports one version backwards of the current [[https://github.com/topjohnwu/magisk-module-template | module template]]. The current minimum module template is 1500.


Revision [329]

Edited on 2018-07-19 09:38:03 by didgeridoohan [Reverted to previous revision]
Additions:
===**Modules are installed, but don't load**===
Make sure you haven't enabled "Magisk Core Only Mode" in the Manager settings. This option disables all modules and only keeps the core functions of Magisk active (MagiskSU, MagiskHide, systemless hosts).
It might be that you're trying to flash a module with an outdated module template. Usually Magisk supports one version backwards of the current [[https://github.com/topjohnwu/magisk-module-template | module template]]. The current minimum module template is 1500.
Deletions:
It might be that you're trying to flash a module with an outdated module template. Usually Magisk supports one version backwards of the current [[https://github.com/topjohnwu/magisk-module-template | module template]].


Revision [324]

Edited on 2018-07-19 09:28:17 by didgeridoohan [Reverted to previous revision]
Additions:
If you’re experiencing problems with installing, disabling or uninstalling a module through the Manager, simply try it through recovery instead. For disabling or uninstalling a module through recovery, see the described methods above under //“Module causing issues”//.
Deletions:
If you’re experiencing problems with installing, disabling or uninstalling a module through the Manager, simply try it through recovery instead. For disabling or uninstalling a module through recovery, see the described method above under //“Module causing issues”//.


Revision [279]

Edited on 2018-04-25 04:25:31 by didgeridoohan [Reverted to previous revision]
Additions:
- Simply delete the modules folder under the image mount path and reboot.
- Navigate to the modules directory under the image mount path and rename any file in there to "remove" (or "disable", just remember the file name in case you want to return to normal later).
Deletions:
- Simply delete the modules folder under /magisk and reboot.
- Navigate to the modules directory under /magisk and rename any file in there to "remove" (or "disable", just remember the file name in case you want to return to normal later).


Revision [278]

Edited on 2018-04-25 04:24:33 by didgeridoohan [Reverted to previous revision]
Additions:
- In terminal you can use the [[https://www.computerhope.com/unix/utouch.htm | touch command]]: type (without quotation marks) "touch /<image mount path>/<module folder>/remove" (or “/<image mount path>/<module folder>/disable”, depending on your preference).
Deletions:
- In terminal you can use the [[https://www.computerhope.com/unix/utouch.htm | touch command]]: type (without quotation marks) "touch /magisk/<module folder>/remove" (or “/magisk/<module folder>/disable”, depending on your preference).


Revision [277]

Edited on 2018-04-25 04:23:23 by didgeridoohan [Reverted to previous revision]
Additions:
First, you can disable all Magisk modules by enabling "Magisk Core Only Mode" in Manager settings. This disables all modules and only keeps the core functions of Magisk active (MagiskSU, MagiskHide, systemless hosts). If you can't boot your device, this can be done by placing a file in /cache (/data/cache on A/B devices) named //".disable_magisk"// (without quotation marks and with the leading dot). This will enable Core Only Mode and you can boot up your device, uninstall the troublesome module and then go into the Manager settings, disable Core Only Mode and reboot. In TWRP you can create the file through the TWRP terminal with the [[https://www.computerhope.com/unix/utouch.htm | touch command]], see below for an example.
- In terminal you can use the [[https://www.computerhope.com/unix/utouch.htm | touch command]]: type (without quotation marks) "touch /magisk/<module folder>/remove" (or “/magisk/<module folder>/disable”, depending on your preference).
Deletions:
First, you can disable all Magisk modules by enabling "Magisk Core Only Mode" in Manager settings. This disables all modules and only keeps the core functions of Magisk active (MagiskSU, MagiskHide, systemless hosts). If you can't boot your device, this can be done by placing a file in /cache (/data/cache on A/B devices) named //".disable_magisk"// (without quotation marks and with the leading dot). This will enable Core Only Mode and you can boot up your device, uninstall the troublesome module and then go into the Manager settings, disable Core Only Mode and reboot. In TWRP you can do this through the TWRP terminal with the[[https://www.computerhope.com/unix/utouch.htm | touch command]].
- In terminal you can type (without quotation marks) "touch /magisk/<module folder>/remove" (or “/magisk/<module folder>/disable”, depending on your preference).


Revision [276]

Edited on 2018-04-25 04:21:54 by didgeridoohan [Reverted to previous revision]
Additions:
First, you can disable all Magisk modules by enabling "Magisk Core Only Mode" in Manager settings. This disables all modules and only keeps the core functions of Magisk active (MagiskSU, MagiskHide, systemless hosts). If you can't boot your device, this can be done by placing a file in /cache (/data/cache on A/B devices) named //".disable_magisk"// (without quotation marks and with the leading dot). This will enable Core Only Mode and you can boot up your device, uninstall the troublesome module and then go into the Manager settings, disable Core Only Mode and reboot. In TWRP you can do this through the TWRP terminal with the[[https://www.computerhope.com/unix/utouch.htm | touch command]].
Deletions:
First, you can disable all Magisk modules by enabling "Magisk Core Only Mode" in Manager settings. This disables all modules and only keeps the core functions of Magisk active (MagiskSU, MagiskHide, systemless hosts). If you can't boot your device, this can be done by placing a file in /cache (/data/cache on A/B devices) named //".disable_magisk"// (without quotation marks and with the leading dot). This will enable Core Only Mode and you can boot up your device, uninstall the troublesome module and then go into the Manager settings, disable Core Only Mode and reboot.


Revision [271]

Edited on 2018-04-15 13:37:02 by didgeridoohan [Reverted to previous revision]
Additions:
First, you can disable all Magisk modules by enabling "Magisk Core Only Mode" in Manager settings. This disables all modules and only keeps the core functions of Magisk active (MagiskSU, MagiskHide, systemless hosts). If you can't boot your device, this can be done by placing a file in /cache (/data/cache on A/B devices) named //".disable_magisk"// (without quotation marks and with the leading dot). This will enable Core Only Mode and you can boot up your device, uninstall the troublesome module and then go into the Manager settings, disable Core Only Mode and reboot.
If nothing else works, deleting the Magisk image (/data/adb/magisk.img) should.
Deletions:
First, you can disable all Magisk modules by placing a file in /cache (/data/cache on A/B devices) named //".disable_magisk"// (without quotation marks and with the leading dot). This will enable Core Only Mode and you can boot up your device, uninstall the troublesome module and then go into the Manager settings, disable Core Only Mode and reboot.
You can also use the "Magisk Core Only Mode" in Manager settings. This disables all modules and only keeps the core functions of Magisk active (MagiskSU, MagiskHide, systemless hosts).


Revision [256]

Edited on 2018-04-01 14:39:58 by didgeridoohan [Reverted to previous revision]
Additions:
If you have a working Magisk installation, but a module causes Magisk, the Magisk Manager or your device to not function properly (bootloop, loss of root, etc), here's a couple of tips:
First, you can disable all Magisk modules by placing a file in /cache (/data/cache on A/B devices) named //".disable_magisk"// (without quotation marks and with the leading dot). This will enable Core Only Mode and you can boot up your device, uninstall the troublesome module and then go into the Manager settings, disable Core Only Mode and reboot.
The drawback to the above method is that it will disable all your Magisk modules, not just the one causing issues. If you don't want to do this, you can use the following method to uninstall only the troublesome module.
Deletions:
If you have a working Magisk installation, but a module causes Magisk, the Magisk Manager or your device to not function properly (bootloop, loss of root, etc), here's a tip:


Revision [211]

Edited on 2018-02-22 16:41:48 by didgeridoohan [Reverted to previous revision]
Additions:
- Navigate to the modules directory under /magisk and rename any file in there to "remove" (or "disable", just remember the file name in case you want to return to normal later).
Deletions:
- Navigate to the modules directory under /magisk and rename any file in there to "remove" (or "disable", just remember the file name is in case you want to return to normal later).


Revision [210]

Edited on 2018-02-22 16:40:56 by didgeridoohan [Reverted to previous revision]
Additions:
- Navigate to the modules directory under /magisk and rename any file in there to "remove" (or "disable", just remember the file name is in case you want to return to normal later).
Deletions:
- Navigate to the modules directory under /magisk and rename the "module.prop" file to "remove".


Revision [209]

Edited on 2018-02-22 16:38:57 by didgeridoohan [Reverted to previous revision]
Additions:
Boot to recovery and flash the Mount Magisk zip //(see [[MagiskInstallation | “Things to keep on your device”]])//. This mounts the Magisk image to /magisk and it can be accessed as any other directory. You now have a couple of options to remove the module:
Deletions:
Boot to recovery and flash the Mount Magisk zip //(see [[MagiskInstallation | “Things to keep on your device”]] above)//. This mounts the Magisk image to /magisk and it can be accessed as any other directory. You now have a couple of options to remove the module:


Revision [206]

Edited on 2018-02-11 03:41:30 by didgeridoohan [Reverted to previous revision]
Additions:
Another issue when installing modules may be that your device has a faulty f2fs implementation //(see [[MagiskIssues | "Issues with f2fs"]])//, that the Magisk image is mounted read-only (run the command “mount | grep “/sbin/.core/img” in terminal to see if it’s rw or ro. A different kernel might fix this) or that the Magisk image is corrupt. Easiest way to fix this is to run the Magisk uninstaller and start from the beginning, or use fsck. Google it…
Deletions:
Another issue when installing modules may be that your device has a faulty f2fs implementation (see “Issues with f2fs” below), that the Magisk image is mounted read-only (run the command “mount | grep “/sbin/.core/img” in terminal to see if it’s rw or ro. A different kernel might fix this) or that the Magisk image is corrupt. Easiest way to fix this is to run the Magisk uninstaller and start from the beginning, or use fsck. Google it…


Revision [201]

The oldest known version of this page was created on 2018-02-05 15:46:58 by didgeridoohan [Reverted to previous revision]
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki