Should any of the emoji modules fail to function, you are permitted to unpack the emoji font file and repackage it with an alternative emoji module compatible with your system. It is not feasible to ensure compatibility with every root solution or device manager across the multitude of ROMs, Android versions, and root hiding mechanisms.
These modules are debugged on my personal device; if they function correctly, they are published. No compatibility requests will be accepted.
Furthermore, if uninstalling the module does not restore the application's emoji functionality, please execute the following command in Termux to restore the emoji data:
su -c '
echo "[*] =========================================="
echo "[*] Emoji Font Cleanup & App Restarter"
echo "[*] =========================================="
PKGS_FILE="/data/local/tmp/emoji_pkgs_$$"
FILES_LIST="/data/local/tmp/emoji_files_$$"
: > "$PKGS_FILE"
: > "$FILES_LIST"
# Ensure temp files are removed even if script is interrupted
trap "rm -f \"$PKGS_FILE\" \"$FILES_LIST\"" EXIT
# Phase 1: Scan
echo "[1/3] Scanning system directories for emoji fonts..."
for root in /data/data /data/user/* /data/user_de/* /data_mirror/data_ce/null/* /data_mirror/data_de/null/*; do
[ -d "$root" ] || continue
find "$root" -type f \( -iname "*emoji*.ttf" -o -iname "*emoji*.otf" \) 2>/dev/null
done > "$FILES_LIST"
TOTAL=$(wc -l < "$FILES_LIST" | tr -d " ")
if [ "$TOTAL" -eq 0 ]; then
echo "[!] No emoji font files found. Exiting."
exit 0
fi
echo "[+] Found $TOTAL file(s)."
# Phase 2: Delete & Track
echo "[2/3] Deleting files and tracking affected apps..."
CURRENT=0
while IFS= read -r f; do
CURRENT=$((CURRENT + 1))
# Show progress every 10 files or at completion
if [ $((CURRENT % 10)) -eq 0 ] || [ "$CURRENT" -eq "$TOTAL" ]; then
PCT=$((CURRENT * 100 / TOTAL))
echo "[+] Progress: $CURRENT/$TOTAL ($PCT%) - $f"
fi
# Extract package name reliably using cut
case "$f" in
/data/data/*) pkg=$(echo "$f" | cut -d/ -f4) ;;
/data/user/*|/data/user_de/*) pkg=$(echo "$f" | cut -d/ -f5) ;;
/data_mirror/data_ce/null/*|/data_mirror/data_de/null/*) pkg=$(echo "$f" | cut -d/ -f6) ;;
*) pkg="" ;;
esac
[ -n "$pkg" ] && echo "$pkg" >> "$PKGS_FILE"
chattr -i "$f" 2>/dev/null
chmod 0666 "$f" 2>/dev/null
rm -f "$f" 2>/dev/null || toybox rm -f "$f" 2>/dev/null
done < "$FILES_LIST"
# Phase 3: Force-stop affected packages
echo "[3/3] Force-stopping affected packages..."
UNIQUE_COUNT=$(sort -u "$PKGS_FILE" 2>/dev/null | sed "/^$/d" | wc -l | tr -d " ")
if [ "$UNIQUE_COUNT" -eq 0 ]; then
echo "[!] No affected packages detected."
else
echo "[+] Stopping $UNIQUE_COUNT unique package(s)..."
sort -u "$PKGS_FILE" 2>/dev/null | sed "/^$/d" | while IFS= read -r pkg; do
echo " -> am force-stop $pkg"
am force-stop "$pkg" 2>/dev/null
done
fi
echo "[*] =========================================="
echo "[*] Cleanup complete. All affected apps force-stopped."
echo "[*] =========================================="
'