diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0161c9a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +AODEnabler* diff --git a/AndroidManifest.xml b/AndroidManifest.xml new file mode 100644 index 0000000..13d5a12 --- /dev/null +++ b/AndroidManifest.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/build b/build new file mode 100755 index 0000000..58b1fce --- /dev/null +++ b/build @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +cleanup() { + rm -rf AODEnabler* 2>/dev/null +} + +while [[ $# -ge 1 ]]; do + case $1 in + -clean) + cleanup + exit;; + *) + echo "Invalid command." + exit + esac + shift +done +cleanup +aapt package -M AndroidManifest.xml -S res/ -I ~/Android/Sdk/platforms/android-28/android.jar -F AODEnabler.apk.u +jarsigner -keystore ~/keystores/shagbag913.jks AODEnabler.apk.u shagbag913 +zipalign 4 AODEnabler.apk.u AODEnabler.apk +cp AODEnabler.apk magisk-module/system/product/overlay/ +cd magisk-module && zip -r9 ../AODEnabler.zip * diff --git a/magisk-module/META-INF/com/google/android/update-binary b/magisk-module/META-INF/com/google/android/update-binary new file mode 100755 index 0000000..0b55d98 --- /dev/null +++ b/magisk-module/META-INF/com/google/android/update-binary @@ -0,0 +1,153 @@ +#!/sbin/sh +########################################################################################## +# +# Magisk Module Template Install Script +# by topjohnwu +# +########################################################################################## + +TMPDIR=/dev/tmp +INSTALLER=$TMPDIR/install +# Always mount under tmp +MOUNTPATH=$TMPDIR/magisk_img + +# Default permissions +umask 022 + +# Initial cleanup +rm -rf $TMPDIR 2>/dev/null +mkdir -p $INSTALLER + +# echo before loading util_functions +ui_print() { echo "$1"; } + +require_new_magisk() { + ui_print "*******************************" + ui_print " Please install Magisk v17.0+! " + ui_print "*******************************" + exit 1 +} + +########################################################################################## +# Environment +########################################################################################## + +OUTFD=$2 +ZIP=$3 + +mount /data 2>/dev/null + +# Load utility functions +if [ -f /data/adb/magisk/util_functions.sh ]; then + . /data/adb/magisk/util_functions.sh +elif [ -f /data/magisk/util_functions.sh ]; then + NVBASE=/data + . /data/magisk/util_functions.sh +else + require_new_magisk +fi + +# Use alternative image if in BOOTMODE +$BOOTMODE && IMG=$NVBASE/magisk_merge.img + +# Preperation for flashable zips +setup_flashable + +# Mount partitions +mount_partitions + +# Detect version and architecture +api_level_arch_detect + +# You can get the Android API version from $API, the CPU architecture from $ARCH +# Useful if you are creating Android version / platform dependent mods + +# Setup busybox and binaries +$BOOTMODE && boot_actions || recovery_actions + +########################################################################################## +# Preparation +########################################################################################## + +# Extract common files +unzip -o "$ZIP" module.prop config.sh 'common/*' -d $INSTALLER >&2 + +[ ! -f $INSTALLER/config.sh ] && abort "! Unable to extract zip file!" +# Load configurations +. $INSTALLER/config.sh + +# Check the installed magisk version +MIN_VER=`grep_prop minMagisk $INSTALLER/module.prop` +[ ! -z $MAGISK_VER_CODE -a $MAGISK_VER_CODE -ge $MIN_VER ] || require_new_magisk +MODID=`grep_prop id $INSTALLER/module.prop` +MODPATH=$MOUNTPATH/$MODID + +# Print mod name +print_modname + +# Please leave this message in your flashable zip for credits :) +ui_print "******************************" +ui_print "Powered by Magisk (@topjohnwu)" +ui_print "******************************" + +########################################################################################## +# Install +########################################################################################## + +# Get the variable reqSizeM. Use your own method to determine reqSizeM if needed +request_zip_size_check "$ZIP" + +# This function will mount $IMG to $MOUNTPATH, and resize the image based on $reqSizeM +mount_magisk_img + +# Create mod paths +rm -rf $MODPATH 2>/dev/null +mkdir -p $MODPATH + +# Extract files to system. Use your own method if needed +ui_print "- Extracting module files" +unzip -o "$ZIP" 'system/*' -d $MODPATH >&2 + +# Remove placeholder +rm -f $MODPATH/system/placeholder 2>/dev/null + +# Handle replace folders +for TARGET in $REPLACE; do + mktouch $MODPATH$TARGET/.replace +done + +# Auto Mount +$AUTOMOUNT && touch $MODPATH/auto_mount + +# prop files +$PROPFILE && cp -af $INSTALLER/common/system.prop $MODPATH/system.prop + +# Module info +cp -af $INSTALLER/module.prop $MODPATH/module.prop +if $BOOTMODE; then + # Update info for Magisk Manager + mktouch /sbin/.core/img/$MODID/update + cp -af $INSTALLER/module.prop /sbin/.core/img/$MODID/module.prop +fi + +# post-fs-data mode scripts +$POSTFSDATA && cp -af $INSTALLER/common/post-fs-data.sh $MODPATH/post-fs-data.sh + +# service mode scripts +$LATESTARTSERVICE && cp -af $INSTALLER/common/service.sh $MODPATH/service.sh + +ui_print "- Setting permissions" +set_permissions + +########################################################################################## +# Finalizing +########################################################################################## + +# Unmount magisk image and shrink if possible +unmount_magisk_img + +$BOOTMODE || recovery_cleanup +rm -rf $TMPDIR + +ui_print "- Done" +exit 0 diff --git a/magisk-module/META-INF/com/google/android/updater-script b/magisk-module/META-INF/com/google/android/updater-script new file mode 100644 index 0000000..11d5c96 --- /dev/null +++ b/magisk-module/META-INF/com/google/android/updater-script @@ -0,0 +1 @@ +#MAGISK diff --git a/magisk-module/common/post-fs-data.sh b/magisk-module/common/post-fs-data.sh new file mode 100644 index 0000000..426ab83 --- /dev/null +++ b/magisk-module/common/post-fs-data.sh @@ -0,0 +1,7 @@ +#!/system/bin/sh +# Please don't hardcode /magisk/modname/... ; instead, please use $MODDIR/... +# This will make your scripts compatible even if Magisk change its mount point in the future +MODDIR=${0%/*} + +# This script will be executed in post-fs-data mode +# More info in the main Magisk thread diff --git a/magisk-module/common/service.sh b/magisk-module/common/service.sh new file mode 100644 index 0000000..4512417 --- /dev/null +++ b/magisk-module/common/service.sh @@ -0,0 +1,7 @@ +#!/system/bin/sh +# Please don't hardcode /magisk/modname/... ; instead, please use $MODDIR/... +# This will make your scripts compatible even if Magisk change its mount point in the future +MODDIR=${0%/*} + +# This script will be executed in late_start service mode +# More info in the main Magisk thread diff --git a/magisk-module/common/system.prop b/magisk-module/common/system.prop new file mode 100644 index 0000000..3d42789 --- /dev/null +++ b/magisk-module/common/system.prop @@ -0,0 +1,3 @@ +# This file will be read by resetprop +# Example: Change dpi +# ro.sf.lcd_density=320 diff --git a/magisk-module/config.sh b/magisk-module/config.sh new file mode 100644 index 0000000..a929199 --- /dev/null +++ b/magisk-module/config.sh @@ -0,0 +1,90 @@ +########################################################################################## +# +# Magisk Module Template Config Script +# by topjohnwu +# +########################################################################################## +########################################################################################## +# +# Instructions: +# +# 1. Place your files into system folder (delete the placeholder file) +# 2. Fill in your module's info into module.prop +# 3. Configure the settings in this file (config.sh) +# 4. If you need boot scripts, add them into common/post-fs-data.sh or common/service.sh +# 5. Add your additional or modified system properties into common/system.prop +# +########################################################################################## + +########################################################################################## +# Configs +########################################################################################## + +# Set to true if you need to enable Magic Mount +# Most mods would like it to be enabled +AUTOMOUNT=true + +# Set to true if you need to load system.prop +PROPFILE=false + +# Set to true if you need post-fs-data script +POSTFSDATA=false + +# Set to true if you need late_start service script +LATESTARTSERVICE=false + +########################################################################################## +# Installation Message +########################################################################################## + +# Set what you want to show when installing your mod + +print_modname() { + ui_print "*******************************" + ui_print " Always On Display Enabler " + ui_print "*******************************" +} + +########################################################################################## +# Replace list +########################################################################################## + +# List all directories you want to directly replace in the system +# Check the documentations for more info about how Magic Mount works, and why you need this +# Construct your own list here, it will override the example above +# !DO NOT! remove this if you don't need to replace anything, leave it empty as it is now +REPLACE=" +" + +########################################################################################## +# Permissions +########################################################################################## + +set_permissions() { + # Only some special files require specific permissions + # The default permissions should be good enough for most cases + + # Here are some examples for the set_perm functions: + + # set_perm_recursive (default: u:object_r:system_file:s0) + # set_perm_recursive $MODPATH/system/lib 0 0 0755 0644 + + # set_perm (default: u:object_r:system_file:s0) + # set_perm $MODPATH/system/bin/app_process32 0 2000 0755 u:object_r:zygote_exec:s0 + # set_perm $MODPATH/system/bin/dex2oat 0 2000 0755 u:object_r:dex2oat_exec:s0 + # set_perm $MODPATH/system/lib/libart.so 0 0 0644 + + # The following is default permissions, DO NOT remove + set_perm_recursive $MODPATH 0 0 0755 0644 +} + +########################################################################################## +# Custom Functions +########################################################################################## + +# This file (config.sh) will be sourced by the main flash script after util_functions.sh +# If you need custom logic, please add them here as functions, and call these functions in +# update-binary. Refrain from adding code directly into update-binary, as it will make it +# difficult for you to migrate your modules to newer template versions. +# Make update-binary as clean as possible, try to only do function calls in it. + diff --git a/magisk-module/module.prop b/magisk-module/module.prop new file mode 100644 index 0000000..6cce2e3 --- /dev/null +++ b/magisk-module/module.prop @@ -0,0 +1,7 @@ +id=aodenabler +name=Always On Display Enabler +version=v1 +versionCode=1 +author=shagbag913 +description=Enables Always On Display via an RRO overlay. Requires Android P+ for now. +minMagisk=17000 diff --git a/res/values/config.xml b/res/values/config.xml new file mode 100644 index 0000000..49b5664 --- /dev/null +++ b/res/values/config.xml @@ -0,0 +1,4 @@ + + + true +