Skip to content

Instantly share code, notes, and snippets.

@eyecatchup
Last active April 7, 2021 20:57
Show Gist options
  • Save eyecatchup/9af90363732801b131bf to your computer and use it in GitHub Desktop.
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]
#!/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