CrackMe.apk
Download file
package com.google.android.exoplayer2.database;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.autofill.HintConstants;
import com.google.android.exoplayer2.util.Log;
public class StandaloneDatabaseProvider extends SQLiteOpenHelper implements DatabaseProvider {
public static final String DATABASE_NAME = "exoplayer_internal.db";
private static final String TAG = "SADatabaseProvider";
private static final int VERSION = 1;
public void onCreate(SQLiteDatabase sQLiteDatabase) {
}
public void onUpgrade(SQLiteDatabase sQLiteDatabase, int i, int i2) {
}
public StandaloneDatabaseProvider(Context context) {
super(context.getApplicationContext(), DATABASE_NAME, (SQLiteDatabase.CursorFactory) null, 1);
}
public void onDowngrade(SQLiteDatabase sQLiteDatabase, int i, int i2) {
wipeDatabase(sQLiteDatabase);
}
private static void wipeDatabase(SQLiteDatabase sQLiteDatabase) {
String str;
Cursor query = sQLiteDatabase.query("sqlite_master", new String[]{SessionDescription.ATTR_TYPE, HintConstants.AUTOFILL_HINT_NAME}, (String) null, (String[]) null, (String) null, (String) null, (String) null);
while (query.moveToNext()) {
try {
String string = query.getString(0);
String string2 = query.getString(1);
if (!"sqlite_sequence".equals(string2)) {
str = "DROP " + string + " IF EXISTS " + string2;
sQLiteDatabase.execSQL(str);
}
} catch (SQLException e) {
Log.e(TAG, "Error executing " + str, e);
} catch (Throwable th) {
if (query != null) {
try {
query.close();
} catch (Throwable th2) {
th.addSuppressed(th2);
}
}
throw th;
}
}
if (query != null) {
query.close();
}
}
}
Download file