xposedDOCS

INSTALL · LINUX

Install on Linux.

xposed supports Linux on amd64 (x86-64) and arm64 (aarch64). You need curl, and either root or sudo.

The one-line installer#

curl -fsSL https://getxposed.link/install.sh | sh

It uses the package manager it finds: pacman, apt, dnf, zypper or apk. On any other Linux it puts the binaries in /usr/local from a tarball. It downloads the latest release and checks it against the release's SHA256SUMS before installing anything.

Run it again any time to update, or use xposed update. To install a specific release, set XPOSED_VERSION:

curl -fsSL https://getxposed.link/install.sh | XPOSED_VERSION=0.2.3 sh

Installing by hand#

Every release is in https://getxposed.link/dl/<version>/, and the file https://getxposed.link/dl/LATEST holds the newest version number. Package files are named xposed_<version>_linux_<arch>.<ext>, where the architecture is always amd64 or arm64, whatever your package manager calls it.

FamilyFile
Archxposed_<version>_linux_<arch>.pkg.tar.zst
Debian, Ubuntuxposed_<version>_linux_<arch>.deb
Fedora, RHEL, openSUSExposed_<version>_linux_<arch>.rpm
Alpinexposed_<version>_linux_<arch>.apk
Anything elsexposed_<version>_linux_<arch>.tar.gz

Download a file and check it against the release's checksums (this example is for a .deb on amd64; change the name to match yours):

VERSION=$(curl -fsSL https://getxposed.link/dl/LATEST)
$ curl -fLO https://getxposed.link/dl/$VERSION/xposed_${VERSION}_linux_amd64.deb
$ curl -fsSLO https://getxposed.link/dl/$VERSION/SHA256SUMS
$ grep " xposed_${VERSION}_linux_amd64.deb\$" SHA256SUMS | sha256sum -c -

Then install the package with your package manager:

Arch Linux#

sudo pacman -U xposed_${VERSION}_linux_amd64.pkg.tar.zst

Debian and Ubuntu#

sudo apt install ./xposed_${VERSION}_linux_amd64.deb

Fedora and RHEL#

sudo dnf install ./xposed_${VERSION}_linux_amd64.rpm

openSUSE#

sudo zypper install --allow-unsigned-rpm ./xposed_${VERSION}_linux_amd64.rpm

Alpine#

sudo apk add --allow-untrusted ./xposed_${VERSION}_linux_amd64.apk

The release is signed as a whole (its SHA256SUMS file carries a signature), not each package, which is why zypper and apk are told to accept an unsigned package.

Tarball#

The archive holds xposed and xposedd (they must sit in the same folder), a desktop entry, an autostart entry, an icon and the GNOME Files script. The one-line installer does all of the following for you; by hand:

$ mkdir xposed-tmp && tar -xzf xposed_${VERSION}_linux_amd64.tar.gz -C xposed-tmp && cd xposed-tmp
$ sudo install -Dm755 xposed xposedd -t /usr/local/bin/
$ sudo install -Dm644 xposed-autostart.desktop /etc/xdg/autostart/xposed.desktop
$ sudo sed -i 's|/usr/bin/xposed|/usr/local/bin/xposed|' /etc/xdg/autostart/xposed.desktop
$ sudo setcap cap_net_bind_service=+ep /usr/local/bin/xposedd

The last line is optional: it lets the local dashboard use port 80 (see below).

After installing#

Sign in once with xposed login; Getting started shows what it prints. Check what you have with:

xposed version

Right-click sharing#

The right-click action ships for GNOME Files (Nautilus): right-click a file, then Scripts, then Share with xposed. The one-line installer adds it for you when it finds Files. If you installed a package by hand, add it for your user yourself, because packages can't write to your home folder:

$ mkdir -p ~/.local/share/nautilus/scripts
$ ln -sf /usr/share/xposed/nautilus/share-with-xposed.sh ~/.local/share/nautilus/scripts/"Share with xposed"

(For a tarball install the script is in /usr/local/share/xposed/nautilus/ instead.) Other file managers don't have a right-click action yet. Use the command line there: xposed share <file>.

Starting at login#

The package installs an autostart entry, /etc/xdg/autostart/xposed.desktop, that runs xposed daemon start when you log in to a desktop that supports XDG autostart, such as GNOME. That reconnects your open links after a reboot without you running anything. Any xposed command also starts the daemon if it isn't running.

The local dashboard and port 80#

The daemon serves your dashboard and control panels only to you, at http://xposed.localhost. To use port 80 it needs one Linux capability, which the packages grant when they install. If it can't get port 80, it uses http://xposed.localhost:9767 instead, and the addresses xposed prints say which. Replacing the xposedd file drops the capability; the package's upgrade step puts it back.

Updating#

xposed update

This downloads the latest release, checks its signature and installs it with the same package manager that installed xposed (or swaps the binaries for a tarball install), then restarts the daemon. Your open shares keep their links. To only check whether a newer version exists, use xposed update --check. xposed update works for installs made by the installer or a release package; a build you compiled yourself has to be updated the way you built it.

Uninstalling#

Stop the daemon first, then remove the package.

xposed daemon stop
FamilyCommand
Archsudo pacman -R xposed
Debian, Ubuntusudo apt remove xposed
Fedora, RHELsudo dnf remove xposed
openSUSEsudo zypper remove xposed
Alpinesudo apk del xposed

For a tarball install, remove the files the installer put in place:

$ sudo rm /usr/local/bin/xposed /usr/local/bin/xposedd /usr/local/share/applications/xposed.desktop /etc/xdg/autostart/xposed.desktop /usr/local/share/icons/hicolor/scalable/apps/xposed.svg
$ sudo rm -r /usr/local/share/xposed

Then remove the Files action and your data:

$ rm -f ~/.local/share/nautilus/scripts/"Share with xposed"
$ rm -rf ~/.config/xposed ~/.local/share/xposed ~/.cache/xposed

Removing your data signs this computer out. It deletes your sign-in for this computer, your share history and cached files. The computer still counts toward your limit until you remove it from the dashboard (Remove, next to the computer).