Android app that adds records to the phone's own databases with any sender, date and content: SMS into the real inbox/sent folder, calls into the real call history, plus custom notifications and a WhatsApp look-alike. Everything stays on the device.
| Type | Where it lands | Needs |
|---|---|---|
| SMS | The phone's SMS database (shows in Google Messages etc.) | Fake Me set as default SMS app while writing |
| Call | The phone's call history (shows in the Phone app's Recents) | Call-log permission (runtime dialog) |
| Notification | A real notification in the shade | Notification permission |
| WhatsApp-style notification + in-app chat only | Nothing; Android does not allow writing into WhatsApp |
Past dates are written immediately. Future dates are armed with AlarmManager and written at that exact moment (survives reboot). Records that could not be written (role or permission missing) are kept as "Not on device" and can be retried from the home banner.
Android only lets the default SMS app insert messages. The app explains this, requests the role through the system dialog, writes, and shows a "Switch back" banner that opens the default-apps settings. While Fake Me holds the role, genuine incoming texts are stored and notified so nothing is lost (MMS is not handled; switch back when done).
app/src/main/java/com/technatix/fakeme
FakeMeApp.kt Application + dependency container (appContainer)
MainActivity.kt Edge-to-edge host, notification permission, deep link from notifications
data/ Room entities (FakeMessage, Sender), DAO, database, FakeMeRepository
domain/RepeatRule.kt Bulk-date rules and RepeatExpander (pure Kotlin, unit tested)
device/ SmsWriter (SMS provider), CallLogWriter (call log),
SmsDeliverReceiver / MmsReceiver / HeadlessSmsSendService (role eligibility)
notifications/ FakeNotifier, MessageDeliverer (device write + notify), NotificationScheduler,
NotificationAlarmReceiver, BootReceiver
ui/components DeviceAccess (role/permission flow), bubbles, call row, status chips, pickers
ui/home Messages / Calls / Notifications / Senders tabs and banners
ui/create Create/edit form + CreateMessageViewModel
ui/conversation Conversation screen + ViewModel
ui/navigation, ui/theme
./gradlew :app:assembleDebug
./gradlew :app:testDebugUnitTest
./gradlew :app:installDebug # to a connected phone
Min SDK 26, target SDK 37. Note: the default-SMS role and the call-log permission are restricted on Google Play; this app is intended for personal/sideloaded use.