summaryrefslogtreecommitdiffstats
path: root/content/posts/enable-swype-aosp-keyboard.md
blob: 0a51953efbaae12197d5dd6b48717eecd22a04ae (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
---
title: "Enabling Swype on the AOSP keyboard"
date: 2021-01-31T14:42:00
lastmod: 2021-02-03T11:51:00
tags: ["Android", "Linux", "Snippets", "Software"]
---

I've recently changed my phone to a Pixel 4, one of the reasons for this was to have as much of an open source device as possible. Naturally my operating system of choice was [LineageOS 17](https://lineageos.org/).

With this however, the included AOSP keyboard will not support gesture inputs without a proprietary Google library. To get this working, you'll first want to download the [Pico package of Open GApps](https://opengapps.org/) for your phone, I'm using ARM64 architecture for my Pixel 4 device however yours may be different.

Once downloaded, extract your archive:
```
unzip open_gapps-arm64-9.0-pico-20210127.zip
```

Now move to the directory containing the library and extract that:
```
cd Optional
tar --lzip -xf swypelibs-lib-arm64.tar.lz
cd swypelibs-lib-arm64/common/lib64
ls
```

Here, you should now have `libjni-latinimegoogle.so`. With this, you want to push this library to your phone.
Once connected via ADB (and with root access enabled in the debugging menu), do the following:
```
adb devices
adb root
adb remount
adb push libjni_latinimegoogle.so /system/lib64/
adb unroot
adb reboot
```

Once rebooted, browse to:
```
Settings > System > Languages & input > Virtual Keyboard > Android Keyboard (AOSP) > Gesture Typing > Enable gesture typing
```

One annoyance is that whenever a OTA update is pushed out to your device, it will remove this library. A [helpful script](https://gist.github.com/rugk/a4c9fa11c5c031faf45602d6bf922a1c) ([and instructions](https://android.stackexchange.com/a/187686)) to workaround this have been provided by [rugk](https://github.com/rugk):
```
wget "https://gist.github.com/rugk/a4c9fa11c5c031faf45602d6bf922a1c/raw/eed64cea4d37f5c35cd4ced5ceb0281fef38afc9/95-latinimegoogle.sh"
sed -i 's/lib\//lib64\//g' 95-latinimegoogle.sh
adb root
adb remount
adb push 95-latinimegoogle.sh /system/addon.d/
adb shell
cd /system/addon.d
chmod +x 95-latinimegoogle.sh
exit
adb unroot
adb reboot
```

And you should be done.

* **Edit 2021-02-03:** Add OTA update library preservation section.