← All guides AI Release
RU Subscribe to @ai_release1

How to Replace Google Apps with Fossify: Install, Configure and What Works Without Google Play

Updated: 09.11.2026 · AI Release · @ai_release1
How to Replace Google Apps with Fossify: Install, Configure and What Works Without Google Play

TL;DR

- An Android phone with a working USB cable and a computer with Android Platform Tools (adb) installed.

- F-Droid installed on the phone (F-Droid is a free, open-source app store that distributes APK builds without Google Play).

- A Google account you can still log into from a browser, to export contacts (.vcf) and calendar (.ics).

- Free local storage for the APK set and the export files.

- The exact minimum Android version for each app: check it on the app's F-Droid page — do not guess.

Requirements and setup

Illustration: Requirements and setup
Illustration: Requirements and setup
adb devices
adb shell pm list packages | grep -i google > google-packages-before.txt

adb devices must list your serial number followed by device — if it says unauthorized, unlock the phone and accept the "Allow USB debugging?" dialog.

Why: the package list is your rollback map. If you disable something and an app starts crashing, you re-enable exactly that package name instead of reinstalling the ROM.

How to check: cat google-packages-before.txt returns lines such as package:com.google.android.apps.photos. An empty file means the phone was not connected — fix the cable or the authorization before continuing.

Step 1. Install the Fossify app set from F-Droid

Illustration: Step 1. Install the Fossify app set from F-Droid
Illustration: Step 1. Install the Fossify app set from F-Droid

What to do: open F-Droid, search for Fossify, and install the apps you want to replace. If the search returns nothing, open F-Droid → Settings → Repositories and add the Fossify repository using the URL published on the Fossify project site — copy it from the official page, never type it from memory.

Fossify apps are local-first by design: Gallery, File Manager, Notes, Clock and Music Player read files and media stored on the device, so they have nothing to talk to Google about. Contacts, Phone, Messages and Calendar hold Android roles — system-level assignments that tell Android which app handles calls, SMS, and so on.

Example: install the APKs manually over adb instead of tapping through the store:

adb install -r FossifyGallery.apk
adb install -r FossifyContacts.apk
adb install -r FossifyPhone.apk
adb install -r FossifyMessages.apk
adb install -r FossifyCalendar.apk

Expected output for each: Success. The -r flag means "replace an existing install, keep its data".

Why: installing through F-Droid gives you builds signed by the project and automatic update notifications. Manual adb install is the fallback when the phone has no store access at all — the same technique used for any private APK, see How to Publish a Private App on Google Play and Install It on Android.

How to check: list what actually landed on the device:

adb shell pm list packages | grep -i fossify

Expected output (order varies):

package:org.fossify.calendar
package:org.fossify.contacts
package:org.fossify.gallery
package:org.fossify.messages
package:org.fossify.phone

Package IDs follow the org.fossify.<app> pattern — confirm the exact string from this command before you use an ID in any later command.

Google appFossify replacementTypical package IDWhat it does without Google
Google PhotosFossify Gallery`org.fossify.gallery`Browses, edits and deletes local photos and videos
Google ContactsFossify Contacts`org.fossify.contacts`Reads contacts from the phone's local store; import from `.vcf`
Google PhoneFossify Phone`org.fossify.phone`Places and answers calls, holds the DIALER role
Google MessagesFossify Messages`org.fossify.messages`Sends and receives SMS/MMS, holds the SMS role
Google CalendarFossify Calendar`org.fossify.calendar`Local events; `.ics` import
Google KeepFossify Notes`org.fossify.notes`Plain local notes
Files by GoogleFossify File Manager`org.fossify.filemanager`Local file browsing, copy, rename
Google ClockFossify Clock`org.fossify.clock`Alarms, timers, they fire offline

Step 2. Assign roles and migrate contacts and calendar data

What to do: Android only lets one app be the default dialer and one be the default SMS app, so you must hand those roles over explicitly.

On the phone, the GUI path is Settings → Apps → Default apps → Phone app / SMS app. The equivalent commands:

adb shell cmd role add-role-holder android.app.role.DIALER org.fossify.phone
adb shell cmd role add-role-holder android.app.role.SMS org.fossify.messages

Then move the data:

1. Google Contacts (web) → Export → download contacts.vcf → push it to the phone with adb push contacts.vcf /sdcard/Download/ → in Fossify Contacts open the menu and choose the import option.

2. Google Calendar (web) → Settings → Export → download the .ics → adb push calendar.ics /sdcard/Download/ → import it in Fossify Calendar.

3. Photos and files stay where they are; Fossify Gallery and File Manager read the same /sdcard/DCIM and /sdcard/Download folders.

Why: a role is not a preference — until the SMS role is assigned, incoming messages are handled by the previous app, or by nothing at all if you already disabled it. Export/import works because .vcf and .ics are plain text formats that any contact or calendar app can read, with no account involved.

Example: disable the Google apps you have replaced, one at a time:

adb shell pm disable-user --user 0 com.google.android.apps.photos
adb shell pm disable-user --user 0 com.google.android.apps.messaging

Expected output: Package com.google.android.apps.photos new state: disabled-user. To undo, run the identical command with pm enable instead of pm disable-user.

How to check: print the disabled set and look for the packages you just turned off:

adb shell pm list packages -d | grep -i google

If a package you disabled is missing from the output, the command failed — read the message it returned before continuing. Do not disable packages with google in the name that you cannot identify; core framework packages can break the launcher.

Step 3. Verify the setup works with no Google services

Illustration: Step 3. Verify the setup works with no Google services
Illustration: Step 3. Verify the setup works with no Google services

What to do: run the phone in airplane mode for the whole check, so no Google service can silently fill in for a missing feature.

adb shell cmd role get-role-holders android.app.role.SMS
adb shell cmd role get-role-holders android.app.role.DIALER

Why: these commands report what Android itself thinks the default apps are — not what the settings screen claims. Airplane mode proves the app stores data locally instead of pulling it from an account.

Example: expected output is a single line per role, for example:

org.fossify.messages
org.fossify.phone

If the output lists a Google package or is empty, re-run the add-role-holder command from Step 2.

How to check — final acceptance list:

What still needs Google or an account: anything that reads a Google account directly — account sync, Play Store purchases, Play Services push notifications, and apps built on Google's location or maps SDKs. Those apps either refuse to start or show a message such as Google Play services not available. Fossify apps do not replace Maps, YouTube or the Play Store itself; for those you need a different tool, and calendar/contact sync to a server needs a CalDAV/CardDAV client (check the Fossify documentation for the supported import and sync options).

Troubleshooting

Problem. Reinstall fails on an app you already had from another source

adb uninstall org.fossify.contacts
adb install -r FossifyContacts.apk

Problem. adb install is rejected the moment the phone screen is unlocked

Problem. APK installed from a file manager is refused

Summary and next steps

You now have a working local-first app set with the dialer and SMS roles assigned, contacts and calendar imported from export files, and Google packages disabled with a rollback list saved in google-packages-before.txt. From here, extend the same pattern offline — for example with How to Run an AI Model Locally on Android: Apps and Setup — and keep updates flowing through F-Droid instead of the Play Store.

FAQ

Does Fossify work without Google Play at all?

Yes. Fossify apps are distributed as APKs through F-Droid, install without a Google account, and their local features (gallery, files, notes, clock, calls, SMS) run with no Play Services installed.

Do I need root to remove Google apps?

No. pm disable-user --user 0 <package> disables an app for the current user over adb without root. Root is only needed to delete system packages from the system partition, which is not required for this guide.

Will I lose my Google contacts and calendar events?

Not if you export first. Contacts export to .vcf and calendar to .ics from the web interface, and both files import into the Fossify apps; keep the exports until you have confirmed the data on the phone.

How do I get updates without the Play Store?

Through F-Droid: it checks its repositories and notifies you about new builds of the apps you installed from it, and you install them with the same signature so existing data stays in place.

🤖 AI summary