% Options for packages loaded elsewhere
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}

\documentclass[
]{article}
\usepackage{amsmath,amssymb}
\usepackage{titlesec}
\usepackage{titling}
\usepackage{lmodern}
\usepackage{xcolor}
\usepackage{iftex}
\usepackage[margin=1in]{geometry}
\ifPDFTeX
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
  \usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
  \usepackage{unicode-math}
  \defaultfontfeatures{Scale=MatchLowercase}
  \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
  \usepackage[]{microtype}
  \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\makeatletter
\@ifundefined{KOMAClassName}{% if non-KOMA class
  \IfFileExists{parskip.sty}{%
    \usepackage{parskip}
  }{% else
    \setlength{\parindent}{0pt}
    \setlength{\parskip}{1pt plus 2pt minus 1pt}}
}{% if KOMA class
  \KOMAoptions{parskip=half}}
\makeatother
\definecolor{myblue}{RGB}{24, 102, 201}
\titleformat{\section}
{\huge\bfseries\color{myblue}}
{}
{0em}
{}[\titlerule]

\titleformat{\subsection}
{\Large\bfseries}
{}
{0em}
{}

\titleformat{\subsubsection}[runin]
{\bfseries}
{}
{0em}
{}[:]

\titlespacing{\subsubsection}
{0em}{0.75em}{0.5em}

\titlespacing{\subsection}
{0em}{1em}{0.65em}

\titlespacing{\maketitle}
{0em}{0em}{0em}
\renewcommand{\maketitle}{
	\begin{center}
		{\huge\bfseries \theauthor}\\
		\vspace{.35em}
		\href{https://sufyaan.me/ask}{sufyaan.me/ask}
	\end{center}
}
\usepackage{color}
\usepackage{fancyvrb}
\newcommand{\VerbBar}{|}
\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
% Add ',fontsize=\small' for more characters per line
\newenvironment{Shaded}{}{}
\newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{#1}}
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
\newcommand{\BuiltInTok}[1]{\textcolor[rgb]{0.00,0.50,0.00}{#1}}
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{#1}}}
\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{#1}}
\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{#1}}
\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{#1}}}
\newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
\newcommand{\ExtensionTok}[1]{#1}
\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{#1}}
\newcommand{\ImportTok}[1]{\textcolor[rgb]{0.00,0.50,0.00}{\textbf{#1}}}
\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
\newcommand{\NormalTok}[1]{#1}
\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{#1}}
\newcommand{\RegionMarkerTok}[1]{#1}
\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{#1}}
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
\ifLuaTeX
\usepackage[bidi=basic]{babel}
\else
\usepackage[bidi=default]{babel}
\fi
\babelprovide[main,import]{english}
% get rid of language-specific shorthands (see #6817):
\let\LanguageShortHands\languageshorthands
\def\languageshorthands#1{}
\ifLuaTeX
  \usepackage{selnolig}  % disable illegal ligatures
\fi
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\urlstyle{same} % disable monospaced font for URLs
\hypersetup{
  pdftitle={(POST) Use AnySoftKeyboard},
  pdflang={en},
  colorlinks=true,
  linkcolor=blue,
  filecolor=blue,
  urlcolor=blue,
  pdfcreator={LaTeX via pandoc}}

\title{Sufyaan's Website}
\author{Sufyaan's Website}
\date{}

\begin{document}
\maketitle

\section[Use AnySoftKeyboard]{Use AnySoftKeyboard}\label{why-i-use-terminal-apps}

\textbf{22 September 2023}


\textbf{Category: }Software

Your smartphone keyboard is an astoundingly sensitive piece of software.
You use it to type everything from the most innocent of messages to the
most crucial passwords. In terms of messaging on encrypted chat
applications like Session or Signal, your smartphone keyboard bypasses
encryption. They could know what you are searching about even on private
search engines like SearX. This is because your keystrokes are
unencrypted. With respect to passwords, your smartphone keyboard, if
invasive, can potentially view your bank account details. This means
that an individual who can access your smartphone keyboard does not need
to utilize advanced techniques to view your data. Therefore, in terms of
trust, you should make sure you absolutely trust your smartphone
keyboard not to store your written text.

When you keep the above statements in mind, it gets unhealthily
fear-inducing when you read how
\href{https://www.androidauthority.com/swiftkey-suspends-service-data-leak-706680/}{SwiftKey
had a cloud syncing glitch which led to users being able to view other
users\textquotesingle{} email addresses.} It is also scary how
\href{https://www.zdnet.com/article/600m-samsung-galaxy-phones-at-security-risk-due-to-pre-installed-keyboard-flaw/}{SwiftKey
that shipped by default on 600M Samsung Galaxy smartphones had a
vulnerability that allowed hackers to setup a proxy server to access
sensors and install apps without the user knowing.} There was also a
keyboard called ai.type that had over 40M users. Out of these,
\href{https://www.zdnet.com/article/popular-virtual-keyboard-leaks-31-million-user-data/}{31M
users had their data leaked because the MongoDB database had no
password.} This included information like
\href{https://mackeeper.com/blog/data-breach-reports-2017/}{phone
numbers, full names, device names and models, screen resolution, Android
version, IMSI and IMEI numbers, email addresses, country of residence,
social media profiles, IP addresses and even locations.}

What is the solution to this madness? Fortunately, if you are on
Android, you have \href{../definitions/free-software}{free software}
options. By using \href{../definitions/free-software}{free software}
keyboards, you can ensure that none of your keystrokes are stored or
sent to a server. This brings us to
\href{https://anysoftkeyboard.github.io/}{AnySoftKeyboard}.
AnySoftKeyboard is a free, libre and open-source keyboard for Android
that has multiple modes, layouts, theme customizations and more. It has
all the features you would expect. Gesture typing, keyboard effects,
corrections, emojis, you name it. Most importantly, it does not track
any of your keystrokes. I have been using it for almost an year. It has
been fast and efficient due to the minimalism and has saved me a lot of
time. It has many niche features like a terminal layout that has arrows,
tabs, pipes and forward slashes for ease of use in Android terminal
emulators like \href{https://termux.dev/en/}{Termux}.

If you are on an iPhone, the best option is ironically Gboard. You can
block Gboard\textquotesingle s tracking using iOS\textquotesingle{}
tracker blocking. Gboard does not log the text you store and instead
uses federated learning to improve its autocorrect. There are no private
options for an iPhone so it is better to choose the best out of two
evils.

All in all, the keyboard you use should be a factor for everyone. Use a
different keyboard and do not use the default one unless you are on
\href{https://lineageos.org/}{LineageOS} or
\href{https://grapheneos.org/}{GrapheneOS}.

\end{document}
