Last active
April 7, 2021 20:57
-
-
Save eyecatchup/9af90363732801b131bf to your computer and use it in GitHub Desktop.
Shell script to disable read receipts for all your incoming Whatsapp messages. [ANDROID-ONLY]
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/system/bin/sh | |
################################################################################ | |
# | |
# Shell script to disable read receipts for all incoming Whatsapp messages. | |
# | |
# [ ANDROID AND ROOT ONLY ! ] | |
# | |
# Author: Stephan Schmitz <[email protected]> | |
# Source: https://gist.github.com/eyecatchup/9af90363732801b131bf | |
# Last Updated: 09. Nov 2014 | |
# | |
# ABOUT | |
# | |
# You don't like that everyone in your Whatsapp contact list is now able to see | |
# whether you've already read their latest message(s) or not? Then feel free to | |
# use the following "work-around" that I found to disable sending read receipts | |
# globally. Once patched, whenever you get new messages, the senders will never | |
# see the 2 check marks in blue. They'll just stay gray, just like it was until | |
# recently. Well, almost. Because you'll still be able to see whether your chat | |
# partners have already read the messages you sent to them. ;) | |
# | |
# DESCRIPTION | |
# | |
# In early Nov. 2014, Whatsapp added a new "feature" - read receipts. It means, | |
# your chat partners will get a visual feedback (2 blue check marks) as soon as | |
# you've read their message(s). | |
# | |
# Unfortunately, Whatsapp's dev team forgot to implement a corresponding privacy | |
# setting for users to be able to turn off this feature. However, fortunately, I | |
# found it was fairly simple to disable the feature, since it is set in a public | |
# XML file in Whatsapp's app data directory. | |
# | |
# This script shall serve as a convenient wrapper for those Android users who do | |
# not live in userland - as well as for the lazy ones. | |
# | |
# PRE-REQUIREMENT | |
# | |
# Basically, all it needs is a working `sed` commandline utily in path. | |
# If you should not have "Busybox" installed yet, choose one of the available | |
# "Busybox" installer apps from Google Play Store and let it install busybox. | |
# | |
# USAGE | |
# | |
# - Save this script to your phone's sdcard as disable_whatsapp_read_receipts.sh | |
# - Open a terminal session on your device | |
# E.g. https://play.google.com/store/apps/details?id=jackpal.androidterm | |
# - In the console, login as root (type su, hit enter) and type: | |
# sh /sdcard/disable_whatsapp_read_receipts.sh | |
# (adjust the path, if required, to fit your's!) | |
# - Hit the enter button. Done. (Whatsapp will restart afterwards) | |
# | |
# If you get any error message a) make sure the /data partition is mounted /w rw | |
# permissions and b), if the permission for restarting WA is denied, 1st try to | |
# uncomment the last line of this script (append hash char "#" (without quotes)) | |
# and run the again. Otherwise, consult me for help here: | |
# http://forum.xda-developers.com/android/development/script-disable-whatsapp-read-receipts-t2933467 | |
# | |
# IMPORTANT NOTE | |
# | |
# The last successful test for this was run at 09. Nov. 2014 and on the Whatsapp | |
# Android version 2.11.399 and 2.11.432 only. Even though it should work for all | |
# Android versions, it was not tested. Also, Whatsapp might change their current | |
# implementation any time soon. So this work-around might stop working any time | |
# soon too. Keep that in mind! | |
# | |
################################################################################ | |
WA_PREFS_PATH='/data/data/com.whatsapp/shared_prefs' | |
WA_PREFS_FILE='com.whatsapp_preferences.xml' | |
echo "Trying to disable read receipts for sent Whatsapp messages .." | |
echo "A backup copy of the original file will be saved in $WA_PREFS_PATH .." | |
# Seems to be a problem for some. So make sure /data is mounted rw. | |
echo "Trying to make sure we can write to the data partition .." | |
echo `mount -o rw,remount /data` | |
# In order for sed inline replacement to match on PATTERN , we need to match the | |
# whole line containing PATTERN and then replace the whole line. | |
sed -i'.bak' 's/^.*\bread_receipts\b.*$/ <long name="read_receipts" value="0" \/>/g' $WA_PREFS_PATH/$WA_PREFS_FILE | |
# Restart Whatsapp package | |
echo "Done. For the change to take affect, restarting Whatsapp now." | |
echo `am start -n com.whatsapp/com.whatsapp.Conversation` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment