Files access

The method FBReader uses to access files depends on both the Android version and the app version.

  • Before FBReader 3.8: The app accessed the file system directly on all Android versions.
  • FBReader 3.8 and newer: Due to Google Play requirements, the app adopted the Storage Access Framework (SAF) on Android 10 and later, while continuing to use direct file access on older Android versions.

The switch to SAF introduces several differences:

  • Access permissions: The app must request access to each folder or file it wants to use, rather than having unrestricted file system access.
  • Restricted access: SAF limits the files and folders that the app can access, affecting where FBReader can read and store files. For example, while files in the Download folder remain accessible, Android does not allow granting permission for full folder access due to security reasons.
  • Performance impact: SAF operates more slowly than direct file access, which can occasionally cause delays in file operations.

If you're experiencing issues opening books in FBReader, especially on Android 10 and higher, it may be due to file access restrictions. Since version 3.8, FBReader uses Google’s modern Storage Access Framework, which may disable file access by default on some devices.

To enable file access, follow these steps:

  1. Open the Settings app on your device.
  2. Search for All files access and enter the section.

    If the search doesn't return results, your device manufacturer may have named the section differently. On most devices, you can find it under SettingsAppsSpecial app access. On some devices, it may be under SettingsPrivacyPermission manager, labeled Files and media.

    If you still can't find it, check your device's documentation or search online for specific instructions.

  3. Tap the three-dot button in the upper-right corner and select Show system.
  4. Find External Storage item in the list and enable it.
  5. Restart your device to ensure the changes take effect.

Once enabled, Android will grant file access to applications, including FBReader.

On some devices, FBReader version 3.8.* unable to open FB2 files, although other formats function as expected. This issue arises from limitations in Android’s Storage Access Framework (SAF), which prevents programmatic access to file types it does not recognise — and unfortunately, FB2 is not recognised by the Android system. The problem only occurs on certain devices, and we do not currently have a definitive solution.

We are actively working to find a universal fix. In the meantime, there are two workarounds available:

  • Archive your FB2 files

    You can place your FB2 files into ZIP archives — either one file per archive, or several files in a single ZIP. As long as the archive filename ends with .zip, SAF will recognise it, and FBReader will be able to access your FB2 files from within the archive. FBReader understands the content presents the same book, so any bookmarks or reading progress from earlier versions will remain available.

  • Revert to FBReader 3.7.7

    Alternatively, you may revert to FBReader 3.7.7, which is available from our website. This version does not use SAF and is therefore unaffected by the issue. Please ensure you disable automatic updates to prevent the app from being upgraded to the 3.8 series. Regrettably, we are unable to revert from SAF in newer versions due to Google Play requirements.

    Important: You must uninstall FBReader 3.8 before installing version 3.7.7 from the package. Android does not allow downgrading to an older version when a newer one is already installed.

  • We appreciate your patience and understanding while we work towards a more permanent solution.

In FBReader 3.8 and newer, this warning sign indicates that the book appears to be on your device, but the app does not have access to the file. You can resolve this issue in one of the following ways:

  • Manually select the file: Tap the book and choose the corresponding file. When you select a file from the file system, you grant FBReader permission to read it.
  • Add the folder to the library path: Go to SettingsLibrary and add the folder where the book is stored. This grants FBReader access to all files in that folder, including future additions. However, note that not all folders can be added due to Android's security restrictions.
  • Move the book file to an accessible folder: If the folder cannot be added to the library path, you can move the book to another folder. For example, the Download folder is often restricted, but you can create a subfolder like Download/Books and move the file there. After moving files, run Rescan from the library menu to update the book list. FBReader will automatically link your moved files to the correct books.

Monkey mascot

Monkey mascot