Navigate:
AyuGram4A
~$AYUGR0.9%

AyuGram4A: Modified Telegram client with privacy features

Fork of exteraGram with message history preservation, ghost mode, and privacy-focused features.

LIVE RANKINGS • 11:54 AM • STEADY
OVERALL
#197
15
MOBILE & DESKTOP
#20
2
30 DAY RANKING TREND
ovr#197
·Mobil#20
STARS
1.8K
FORKS
213
7D STARS
+16
7D FORKS
+3
See Repo:
Share:

Learn more about AyuGram4A

AyuGram4A is a modified Android Telegram client based on exteraGram with additional privacy and message management features. The application saves message history persistently rather than just caching it, allowing users to retain deleted or edited messages even after cache clearing. It implements a ghost mode system that hides online status from other users and includes message filtering capabilities. The client integrates with AyuSync, a synchronization service for syncing read states and message history across devices.

AyuGram4A

1

Persistent Message History

Saves deleted and edited messages permanently to local storage rather than temporary cache. Messages remain accessible even after cache clearing or app reinstallation.

2

Full Ghost Mode

Hides online status and read receipts from other users while maintaining normal messaging functionality. Provides granular control over visibility settings.

3

AyuSync Integration

Synchronizes message history and read states across multiple devices through a dedicated backend service. Supports both official servers and self-hosted instances.


public class AyuMessageUtils {
    private static final String TAG = "AyuMessageUtils";
    private SQLiteDatabase database;
    
    public AyuMessageUtils(Context context) {
        AyuDatabaseHelper helper = new AyuDatabaseHelper(context);
        this.database = helper.getWritableDatabase();
    }
    
    public void saveDeletedMessage(TLRPC.Message message, long chatId) {
        ContentValues values = new ContentValues();
        values.put("message_id", message.id);
        values.put("chat_id", chatId);
        values.put("message_text", message.message);
        values.put("date", message.date);
        values.put("from_id", message.from_id != null ? message.from_id.user_id : 0);
        values.put("deleted_date", System.currentTimeMillis() / 1000);
        database.insert("deleted_messages", null, values);
        if (BuildVars.LOGS_ENABLED) {
            FileLog.d(TAG + ": Saved deleted message " + message.id + " from chat " + chatId);
        }
    }
    
    public ArrayList<TLRPC.Message> getDeletedMessages(long chatId) {
        ArrayList<TLRPC.Message> messages = new ArrayList<>();
        Cursor cursor = database.query("deleted_messages", null, "chat_id = ?", 
            new String[]{String.valueOf(chatId)}, null, null, "date DESC");
        
        while (cursor.moveToNext()) {
            TLRPC.Message message = new TLRPC.TL_message();
            message.id = cursor.getInt(cursor.getColumnIndex("message_id"));
            message.message = cursor.getString(cursor.getColumnIndex("message_text"));
            message.date = cursor.getInt(cursor.getColumnIndex("date"));
            messages.add(message);
        }
        cursor.close();
        return messages;
    }
}



[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers