Skip to content

Krypto-Hashers-Community/KHC-FakeFAT

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FakeFAT+

The Problem

Last week, I bought a new Samsung TV running Tizen OS. It's a great TV with amazing picture quality, perfect for watching high-quality movies. But there was one frustrating limitation - it only supports FAT32 formatted USB drives. This became a real problem when I tried to watch my 4K movies, many of which are larger than 4GB. The TV simply wouldn't recognize my NTFS-formatted drive, and even when I tried FAT32, it would fail to play any file over 4GB.

I'm not alone in this problem. Many smart TV users, especially those with Samsung, LG, or other devices running Tizen or similar operating systems, face the same limitation. These modern devices with 4K capabilities are stuck with a filesystem from the 90s. Whether it's a high-bitrate movie, a long recording, or a collection of large files, the 4GB limit of FAT32 is a constant roadblock.

The Solution

That's when I started thinking about a different approach. Instead of trying to force modern filesystems onto the TV, what if we could make FAT32 work for us? The idea was simple but powerful: create a virtual filesystem that lives inside a hidden file on a FAT32 drive. The TV sees only the FAT32 surface and ignores our hidden file, while modern systems can use a custom driver to access the real data inside.

This is FakeFAT+ - a filesystem that speaks FAT32 on the outside but thinks NTFS on the inside. It's like hiding a high-performance vault inside an old familiar box.

How It Works

FakeFAT+ works by creating a hidden file (.fakefat.vol) on your FAT32 drive. Inside this file lives a complete virtual filesystem that supports:

  • Files larger than 4GB
  • Advanced metadata and permissions
  • Modern filesystem features

When you plug the drive into your TV, it sees only the FAT32 surface and ignores our hidden file. But when you use it with a modern system running our FUSE driver, you get full access to all the advanced features.

⚠️ Important Warning

This software is currently in development and should be used with extreme caution. Using FakeFAT+ on your drives carries significant risks:

  • The drive may become corrupted and unusable
  • Data loss is possible
  • The filesystem implementation is not yet stable
  • There is no guarantee of data recovery if something goes wrong

Please do not use this software on drives containing important data. Always maintain backups of your data before experimenting with FakeFAT+.

Getting Started

Requirements

  • Linux/Unix system
  • FUSE (Filesystem in Userspace)
  • C/C++ compiler
  • CMake

Building

mkdir build
cd build
cmake ..
make

Usage

  1. Format your drive as FAT32
  2. Initialize FakeFAT+:
    fakefat init /path/to/drive
  3. Mount the virtual filesystem:
    fakefat mount /path/to/drive /mount/point

Project Structure

fakefat-plus/
├── src/
│   ├── fuse/           # FUSE driver implementation
│   ├── cli/            # Command-line interface tools
│   └── core/           # Core filesystem logic
├── tests/              # Test suite
├── docs/               # Documentation
└── tools/              # Development and build tools

License

MIT License

Contributing

Contributions are welcome! Please read our contributing guidelines before submitting pull requests.

⚠️ Important Warning

This software is currently in development and should be used with extreme caution. Using FakeFAT+ on your drives carries significant risks:

  • The drive may become corrupted and unusable
  • Data loss is possible
  • The filesystem implementation is not yet stable
  • There is no guarantee of data recovery if something goes wrong

Please do not use this software on drives containing important data. Always maintain backups of your data before experimenting with FakeFAT+.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 96.6%
  • CMake 3.4%