• topjohnwu's avatar
    Significantly broaden sepolicy.rule compatibility · 16e4c679
    topjohnwu authored
    Previously, Magisk uses persist or cache for storing modules' custom
    sepolicy rules. In this commit, we significantly broaden its
    compatibility and also prevent mounting errors.
    
    The persist partition is non-standard and also critical for Snapdragon
    devices, so we prefer not to use it by default.
    
    We will go through the following logic to find the best suitable
    non-volatile, writable location to store and load sepolicy.rule files:
    
    Unencrypted data -> FBE data unencrypted dir -> cache -> metadata -> persist
    
    This should cover almost all possible cases: very old devices have
    cache partitions; newer devices will use FBE; latest devices will use
    metadata FBE (which guarantees a metadata parition); and finally,
    all Snapdragon devices have the persist partition (as a last resort).
    
    Fix #3179
    16e4c679
magisk_uninstaller.sh 4.32 KB