diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e976664 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ + +*.zip +*.bat diff --git a/META-INF/com/google/android/update-binary b/META-INF/com/google/android/update-binary index 614871c..ea4889e 100644 --- a/META-INF/com/google/android/update-binary +++ b/META-INF/com/google/android/update-binary @@ -1,151 +1,33 @@ #!/sbin/sh -TMPDIR=/dev/tmp -MOUNTPATH=/dev/magisk_img +################# +# Initialization +################# -# Default permissions umask 022 -# Initial cleanup -rm -rf $TMPDIR 2>/dev/null -mkdir -p $TMPDIR - # echo before loading util_functions ui_print() { echo "$1"; } require_new_magisk() { - ui_print "***********************************" - ui_print " Please install the latest Magisk! " - ui_print "***********************************" + ui_print "*******************************" + ui_print " Please install Magisk v20.4+! " + ui_print "*******************************" exit 1 } -imageless_magisk() { - [ $MAGISK_VER_CODE -gt 18100 ] - return $? -} - -########################################################################################## -# Environment -########################################################################################## +######################### +# Load util_functions.sh +######################### OUTFD=$2 ZIPFILE=$3 mount /data 2>/dev/null -# Load utility functions -if [ -f /data/adb/magisk/util_functions.sh ]; then - . /data/adb/magisk/util_functions.sh - NVBASE=/data/adb -else - require_new_magisk -fi - -# Preperation for flashable zips -setup_flashable - -# Mount partitions -mount_partitions - -# Detect version and architecture -api_level_arch_detect - -# Setup busybox and binaries -$BOOTMODE && boot_actions || recovery_actions - -########################################################################################## -# Preparation -########################################################################################## - -# Extract common files -unzip -oj "$ZIPFILE" module.prop install.sh uninstall.sh 'common/*' -d $TMPDIR >&2 - -[ ! -f $TMPDIR/install.sh ] && abort "! Unable to extract zip file!" -# Load install script -. $TMPDIR/install.sh - -if imageless_magisk; then - $BOOTMODE && MODDIRNAME=modules_update || MODDIRNAME=modules - MODULEROOT=$NVBASE/$MODDIRNAME -else - $BOOTMODE && IMGNAME=magisk_merge.img || IMGNAME=magisk.img - IMG=$NVBASE/$IMGNAME - request_zip_size_check "$ZIPFILE" - mount_magisk_img - MODULEROOT=$MOUNTPATH -fi - -MODID=`grep_prop id $TMPDIR/module.prop` -MODPATH=$MODULEROOT/$MODID - -print_modname - -ui_print "******************************" -ui_print "Powered by Magisk (@topjohnwu)" -ui_print "******************************" - -########################################################################################## -# Install -########################################################################################## - -# Create mod paths -rm -rf $MODPATH 2>/dev/null -mkdir -p $MODPATH - -# Remove placeholder -rm -f $MODPATH/system/placeholder 2>/dev/null - -# Custom uninstaller -[ -f $TMPDIR/uninstall.sh ] && cp -af $TMPDIR/uninstall.sh $MODPATH/uninstall.sh - -# Auto Mount -if imageless_magisk; then - $SKIPMOUNT && touch $MODPATH/skip_mount -else - $SKIPMOUNT || touch $MODPATH/auto_mount -fi - -# prop files -$PROPFILE && cp -af $TMPDIR/system.prop $MODPATH/system.prop - -# Module info -cp -af $TMPDIR/module.prop $MODPATH/module.prop -if $BOOTMODE; then - # Update info for Magisk Manager - if imageless_magisk; then - mktouch $NVBASE/modules/$MODID/update - cp -af $TMPDIR/module.prop $NVBASE/modules/$MODID/module.prop - else - mktouch /sbin/.magisk/img/$MODID/update - cp -af $TMPDIR/module.prop /sbin/.magisk/img/$MODID/module.prop - fi -fi - -# post-fs-data mode scripts -$POSTFSDATA && cp -af $TMPDIR/post-fs-data.sh $MODPATH/post-fs-data.sh - -# service mode scripts -$LATESTARTSERVICE && cp -af $TMPDIR/service.sh $MODPATH/service.sh - -on_install - -# Handle replace folders -for TARGET in $REPLACE; do - mktouch $MODPATH$TARGET/.replace -done - -ui_print "- Setting permissions" -set_permissions - -########################################################################################## -# Finalizing -########################################################################################## - -cd / -imageless_magisk || unmount_magisk_img -$BOOTMODE || recovery_cleanup -rm -rf $TMPDIR $MOUNTPATH +[ -f /data/adb/magisk/util_functions.sh ] || require_new_magisk +. /data/adb/magisk/util_functions.sh +[ $MAGISK_VER_CODE -lt 20400 ] && require_new_magisk -ui_print "- Done" -exit 0 +install_module +exit 0 \ No newline at end of file diff --git a/README.md b/README.md index 6a11956..e2322b2 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,11 @@ This Magisk module provides a statically linked and stripped `sqlite3` binary fo ## Changelog +2021-04-25: v1.4 + +- Updated to SQLite 3.35.5. +- Updated for Magisk v20.4 template format. + 2019-03-29: v1.3 - Updated to SQLite 3.27.2. diff --git a/common/post-fs-data.sh b/common/post-fs-data.sh deleted file mode 100644 index 426ab83..0000000 --- a/common/post-fs-data.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/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/common/service.sh b/common/service.sh deleted file mode 100644 index 4512417..0000000 --- a/common/service.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/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/common/system.prop b/common/system.prop deleted file mode 100644 index 3d42789..0000000 --- a/common/system.prop +++ /dev/null @@ -1,3 +0,0 @@ -# This file will be read by resetprop -# Example: Change dpi -# ro.sf.lcd_density=320 diff --git a/customize.sh b/customize.sh new file mode 100644 index 0000000..9a0db3e --- /dev/null +++ b/customize.sh @@ -0,0 +1,15 @@ +bindir=/system/bin +xbindir=/system/xbin + +# Check for existence of /system/xbin directory. +if [ ! -d /sbin/.magisk/mirror$xbindir ]; then + # Use /system/bin instead of /system/xbin. + mkdir -p $MODPATH$bindir + mv $MODPATH$xbindir/sqlite3 $MODPATH$bindir + rmdir $MODPATH$xbindir + xbindir=$bindir +fi + +ui_print "- Installed to $xbindir" + +set_perm_recursive $MODPATH 0 0 0755 0755 diff --git a/install.sh b/install.sh deleted file mode 100644 index facbb5a..0000000 --- a/install.sh +++ /dev/null @@ -1,171 +0,0 @@ -########################################################################################## -# -# Magisk Module Installer Script -# -########################################################################################## -########################################################################################## -# -# Instructions: -# -# 1. Place your files into system folder (delete the placeholder file) -# 2. Fill in your module's info into module.prop -# 3. Configure and implement callbacks in this file -# 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 -# -########################################################################################## - -########################################################################################## -# Config Flags -########################################################################################## - -# Set to true if you do *NOT* want Magisk to mount -# any files for you. Most modules would NOT want -# to set this flag to true -SKIPMOUNT=false - -# 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 - -########################################################################################## -# Replace list -########################################################################################## - -# List all directories you want to directly replace in the system -# Check the documentations for more info why you would need this - -# Construct your list in the following format -# This is an example -REPLACE_EXAMPLE=" -/system/app/Youtube -/system/priv-app/SystemUI -/system/priv-app/Settings -/system/framework -" - -# Construct your own list here -REPLACE=" -" - -########################################################################################## -# -# Function Callbacks -# -# The following functions will be called by the installation framework. -# You do not have the ability to modify update-binary, the only way you can customize -# installation is through implementing these functions. -# -# When running your callbacks, the installation framework will make sure the Magisk -# internal busybox path is *PREPENDED* to PATH, so all common commands shall exist. -# Also, it will make sure /data, /system, and /vendor is properly mounted. -# -########################################################################################## -########################################################################################## -# -# The installation framework will export some variables and functions. -# You should use these variables and functions for installation. -# -# ! DO NOT use any Magisk internal paths as those are NOT public API. -# ! DO NOT use other functions in util_functions.sh as they are NOT public API. -# ! Non public APIs are not guranteed to maintain compatibility between releases. -# -# Available variables: -# -# MAGISK_VER (string): the version string of current installed Magisk -# MAGISK_VER_CODE (int): the version code of current installed Magisk -# BOOTMODE (bool): true if the module is currently installing in Magisk Manager -# MODPATH (path): the path where your module files should be installed -# TMPDIR (path): a place where you can temporarily store files -# ZIPFILE (path): your module's installation zip -# ARCH (string): the architecture of the device. Value is either arm, arm64, x86, or x64 -# IS64BIT (bool): true if $ARCH is either arm64 or x64 -# API (int): the API level (Android version) of the device -# -# Availible functions: -# -# ui_print -# print to console -# Avoid using 'echo' as it will not display in custom recovery's console -# -# abort -# print error message to console and terminate installation -# Avoid using 'exit' as it will skip the termination cleanup steps -# -# set_perm [context] -# if [context] is empty, it will default to "u:object_r:system_file:s0" -# this function is a shorthand for the following commands -# chown owner.group target -# chmod permission target -# chcon context target -# -# set_perm_recursive [context] -# if [context] is empty, it will default to "u:object_r:system_file:s0" -# for all files in , it will call: -# set_perm file owner group filepermission context -# for all directories in (including itself), it will call: -# set_perm dir owner group dirpermission context -# -########################################################################################## -########################################################################################## -# If you need boot scripts, DO NOT use general boot scripts (post-fs-data.d/service.d) -# ONLY use module scripts as it respects the module status (remove/disable) and is -# guaranteed to maintain the same behavior in future Magisk releases. -# Enable boot scripts by setting the flags in the config section above. -########################################################################################## - -# Set what you want to display when installing your module - -print_modname() { - ui_print "*******************************" - ui_print " sqlite3 installer " - ui_print "*******************************" -} - -# Copy/extract your module files into $MODPATH in on_install. - -on_install() { - # The following is the default implementation: extract $ZIPFILE/system to $MODPATH - # Extend/change the logic to whatever you want - ui_print "- Extracting module files" - unzip -o "$ZIPFILE" 'system/*' -d $MODPATH >&2 - - set_bindir -} - -# Only some special files require specific permissions -# This function will be called after on_install is done -# The default permissions should be good enough for most cases - -set_permissions() { - # The following is the default rule, DO NOT remove - set_perm_recursive $MODPATH 0 0 0755 0755 - - # Here are some examples: - # set_perm_recursive $MODPATH/system/lib 0 0 0755 0644 - # 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 -} - -# You can add more functions to assist your custom script code -set_bindir() { - local bindir=/system/bin - local xbindir=/system/xbin - - # Check for existence of /system/xbin directory. - if [ ! -d /sbin/.magisk/mirror$xbindir ]; then - # Use /system/bin instead of /system/xbin. - mkdir -p $MODPATH$bindir - mv $MODPATH$xbindir/sqlite3 $MODPATH$bindir - rmdir $MODPATH$xbindir - xbindir=$bindir - fi - - ui_print "- Installed to $xbindir" -} diff --git a/module.prop b/module.prop index 289f49a..d2d71f0 100644 --- a/module.prop +++ b/module.prop @@ -1,6 +1,6 @@ id=sqlite3 name=SQLite for ARM aarch64 devices -version=v1.3 -versionCode=13 -author=ianmacd +version=v1.4 +versionCode=14 +author=ianmacd,Howard description=Provides a statically linked sqlite3 binary for ARM aarch64 devices diff --git a/system/xbin/sqlite3 b/system/xbin/sqlite3 index 702a901..862d137 100755 Binary files a/system/xbin/sqlite3 and b/system/xbin/sqlite3 differ