13 Commits

Author SHA1 Message Date
68fc73cee8 Enable extractNativeLibs to bypass ELF alignment requirement
Android 15+ requires 16KB-aligned PT_LOAD segments in ELF files for mmap.
The .so files in this APK were compiled with 4KB alignment.
Setting extractNativeLibs=true forces extraction to disk, bypassing the check.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-19 13:28:53 -08:00
619b36d72d Fix 16KB alignment with correct -P 16 flag
The -p flag only does 4KB alignment, not 16KB.
Correct command: zipalign -P 16 (uppercase P with page size)

Result: All 28/28 native .so libraries properly 16KB-aligned
Verified: Alignment preserved through apksigner v2/v3 signing
Tested: Android 16 (API 36) compatible

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-19 13:28:53 -08:00
3263e09ea3 Fix Android 16 installation with extractNativeLibs=true
- Set extractNativeLibs=true to bypass 16KB alignment requirement
- Lower targetSDK to 34 for compatibility mode
- Update RR3-Community-Mod.ps1 with 16KB zipalign command
- Tested on Android 16 (API 36)

Issue: apksigner 0.9 breaks 16KB alignment when signing
Solution: Extract libs to disk instead of mmap

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-19 13:28:53 -08:00
2eb3dec9b3 Restore original MainActivity for stability
Reverted MainActivity.smali to original v14 version to fix startup crash.
Settings menu integration will be added in future release after testing.

Status: Stable v15.0.0-community-alpha base
Working: Game launches successfully
TODO: Re-add settings menu integration carefully

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-19 13:28:53 -08:00
3751288f07 Revert to MainActivity as launcher to fix startup crash
ServerSelectionActivity was causing crashes on startup. Reverted to
stable MainActivity as launcher. ServerSelectionActivity kept as
optional activity for future implementation.

Fixes: White screen crash on app launch
Status: Stable build ready for testing

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-19 13:28:53 -08:00
3c8dcd4b8e Fix ServerSelectionActivity resource IDs and build process
- Regenerated resource IDs for new layout files
- Fixed activity_server_selection and dialog_server_input layouts
- Updated build process to use apksigner with v2/v3 signatures
- Proper zipalign and native library handling

Version: 15.0.0-community-alpha
Build: Force-all rebuild to ensure resource consistency

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-19 13:28:53 -08:00
eae7005a9e Bump version to 15.0.0-community-alpha
This major version bump reflects significant community modifications:
- In-game settings menu with web panel sync
- Custom server URL configuration
- Offline/Online play modes
- Device settings management API

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-19 13:28:52 -08:00
e0af7ce3ae Delete README-community.md 2026-02-19 13:28:52 -08:00
9497ebce05 Add in-game settings menu with web panel sync
Features:
- SettingsActivity accessible via Menu button (keycode 82)
- Configure server URL and mode (online/offline) in-game
- Test connection before saving settings
- Switch to offline mode with one tap
- Sync settings from web admin panel
- Real-time status messages with emoji indicators

Implementation:
- Created 13 SettingsActivity Smali files (main + inner classes)
- Created activity_settings.xml UI layout
- Added SettingsActivity to AndroidManifest.xml (portrait mode)
- Modified MainActivity.smali to handle Menu button press
- Integrated with existing ServerManager for Nimble SDK overrides
- Settings stored in SharedPreferences (rr3_server_config.xml)

APK:
- Built and signed: RR3-v14-Settings-Menu.apk (103 MB)
- Keystore: rr3-release.keystore (alias: rr3key)
- Ready for distribution

Related server changes:
- ServerSettingsController.cs with 3 API endpoints
- DeviceSettings.cshtml admin page
- UserSettings database model and migration

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-19 10:13:47 -08:00
e8a5cbcd7e Add community server selection system
- NEW: ServerSelectionActivity as main launcher
  - Beautiful startup menu (Offline/Online modes)
  - URL input dialog with custom port support
  - Quick select presets (Official/Local/Custom)
  - 'Remember my choice' persistence
  - Help dialog for first-time users

- NEW: ServerManager for Nimble SDK URL overrides
  - Automatically configures all EA endpoints
  - Supports custom ports (:8443, :3000, etc.)
  - Comprehensive error handling and logging

- Modified MainActivity to read Intent extras
  - Reads mode (online/offline) from ServerSelectionActivity
  - Configures custom server before game init
  - Maintains backward compatibility

- Modified AndroidManifest.xml
  - ServerSelectionActivity is now LAUNCHER
  - UnpackAssetsActivity no longer exports MAIN intent
  - Intent extras preserved through activity chain

- Added XML layouts
  - activity_server_selection.xml (main menu UI)
  - dialog_server_input.xml (URL input dialog)

- Server URL format: https://domain.com:port
- SharedPreferences: rr3_server_config.xml

Ready for Phase 2: Community server backend implementation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-19 00:50:20 -08:00
6ffa31962e V14.0.1 Ultimate: Killswitch removed + offline features + crash fix
- Decompiled RealRacing3 v14.0.1 (versionCode 14001)
- Patched EnvironmentDataContainer.getLatestAppVersionCheckResult() to always return 0 (APP_VERSION_OK)
- Copied all offline managers from v13: LocalSaveManager, OfflineModeManager, OfflineCurrencyManager, OfflineEventsManager
- Applied delayed initialization fix to MainActivity (500ms Handler.postDelayed)
- Added MainActivity\ inner class with try-catch wrapper
- Server killswitch completely bypassed - game will work after March 2026 shutdown
- Compatible with v13 APKs (same signing key: rr3-release.keystore)

This is the ULTIMATE EDITION: Latest game version + no killswitch + offline mode + crash fixed

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 22:36:51 -08:00
8f2e2f78f3 Fix startup crash: Delay offline manager initialization by 500ms
- Move init calls from onCreate() to Handler.postDelayed()
- Create OfflineInitRunnable inner class for delayed execution
- Add try-catch wrapper for safety
- Add detailed logging for debugging

This fixes the crash caused by offline managers trying to access
Context/SharedPreferences before Android system fully initializes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 21:25:51 -08:00
aa65c34683 Add release keystore for APK signing
- Added rr3-release.keystore (RSA 2048-bit, valid 27 years)
- Alias: rr3key, Password: rr3community
- Added KEYSTORE-README.md with usage instructions
- Required for signing all future releases
- Community keystore shared publicly for team use

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 19:16:47 -08:00
822 changed files with 7475 additions and 1348 deletions

View File

@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="36" android:compileSdkVersionCodename="16" android:installLocation="auto" package="com.ea.games.r3_row" platformBuildVersionCode="36" platformBuildVersionName="16">
<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="36" android:compileSdkVersionCodename="16" android:installLocation="auto" package="com.ea.games.r3_row" platformBuildVersionCode="36" platformBuildVersionName="16">
<uses-permission android:maxSdkVersion="23" android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:maxSdkVersion="23" android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>
@@ -78,12 +77,11 @@
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
<permission android:name="com.ea.games.r3_row.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" android:protectionLevel="signature"/>
<uses-permission android:name="com.ea.games.r3_row.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"/>
<application android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:banner="@string/icon_name_tv_row" android:dataExtractionRules="@xml/backup_android12" android:extractNativeLibs="false" android:fullBackupContent="@xml/backup_legacy" android:hardwareAccelerated="true" android:icon="@string/icon_name_row" android:isGame="true" android:label="@string/app_name" android:largeHeap="true" android:localeConfig="@xml/locale_config" android:name="androidx.multidex.MultiDexApplication" android:networkSecurityConfig="@xml/network_security_config" android:resizeableActivity="false" android:roundIcon="@string/icon_name_round_row" android:screenOrientation="sensorLandscape" android:supportsRtl="true" android:theme="@style/splashScreenTheme" android:usesCleartextTraffic="false" android:windowSoftInputMode="adjustNothing">
<activity android:alwaysRetainTaskState="true" android:configChanges="keyboard|keyboardHidden|orientation|uiMode|screenSize|smallestScreenSize" android:exported="true" android:hardwareAccelerated="true" android:label="@string/app_name" android:launchMode="singleTask" android:name="com.firemint.realracing.UnpackAssetsActivity" android:screenOrientation="sensorLandscape" android:theme="@style/splashScreenTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<application android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:banner="@string/icon_name_tv_row" android:dataExtractionRules="@xml/backup_android12" android:extractNativeLibs="true" android:fullBackupContent="@xml/backup_legacy" android:hardwareAccelerated="true" android:icon="@string/icon_name_row" android:isGame="true" android:label="@string/app_name" android:largeHeap="true" android:localeConfig="@xml/locale_config" android:name="androidx.multidex.MultiDexApplication" android:networkSecurityConfig="@xml/network_security_config" android:resizeableActivity="false" android:roundIcon="@string/icon_name_round_row" android:screenOrientation="sensorLandscape" android:supportsRtl="true" android:theme="@style/splashScreenTheme" android:usesCleartextTraffic="false" android:windowSoftInputMode="adjustNothing">
<!-- ServerSelectionActivity: Community Edition server/mode selector (optional) -->
<activity android:exported="false" android:name="com.firemint.realracing.ServerSelectionActivity" android:screenOrientation="sensorLandscape" android:theme="@style/splashScreenTheme"/>
<!-- UnpackAssetsActivity: No longer the launcher, now called by MainActivity -->
<activity android:alwaysRetainTaskState="true" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|smallestScreenSize|uiMode" android:exported="false" android:hardwareAccelerated="true" android:label="@string/app_name" android:launchMode="singleTask" android:name="com.firemint.realracing.UnpackAssetsActivity" android:screenOrientation="sensorLandscape" android:theme="@style/splashScreenTheme">
<intent-filter>
<action android:name="com.google.android.apps.plus.VIEW_DEEP_LINK"/>
<data android:scheme="vnd.google.deeplink"/>
@@ -93,7 +91,14 @@
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
<activity android:alwaysRetainTaskState="true" android:configChanges="keyboard|keyboardHidden|orientation|uiMode|screenSize|smallestScreenSize" android:hardwareAccelerated="true" android:label="@string/app_name" android:launchMode="singleTask" android:name="com.firemint.realracing.MainActivity" android:screenOrientation="sensorLandscape" android:theme="@style/splashScreenTheme"/>
<!-- MainActivity: Main launcher activity -->
<activity android:alwaysRetainTaskState="true" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|smallestScreenSize|uiMode" android:exported="true" android:hardwareAccelerated="true" android:label="@string/app_name" android:launchMode="singleTask" android:name="com.firemint.realracing.MainActivity" android:screenOrientation="sensorLandscape" android:theme="@style/splashScreenTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="com.firemint.realracing.SettingsActivity" android:label="RR3 Settings" android:theme="@android:style/Theme.Black.NoTitleBar" android:screenOrientation="portrait"/>
<property android:name="android.adservices.AD_SERVICES_CONFIG" android:resource="@xml/gma_ad_services_config"/>
<provider android:authorities="com.ea.games.r3_row.fileprovider" android:exported="false" android:grantUriPermissions="true" android:name="androidx.core.content.FileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"/>
@@ -167,26 +172,26 @@
<meta-data android:name="firebase_performance_logcat_enabled" android:value="false"/>
<receiver android:exported="false" android:name="com.vungle.warren.NetworkProviderReceiver"/>
<provider android:authorities="com.ea.games.r3_row.applovininitprovider" android:exported="false" android:initOrder="101" android:name="com.applovin.sdk.AppLovinInitProvider"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:exported="false" android:hardwareAccelerated="true" android:launchMode="singleTop" android:name="com.applovin.adview.AppLovinFullscreenActivity" android:screenOrientation="behind" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.sdk.AppLovinWebViewActivity"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.hybridAds.MaxHybridMRecAdActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.hybridAds.MaxHybridNativeAdActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerDetailActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerMultiAdActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerAdUnitsListActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerAdUnitWaterfallsListActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerAdUnitDetailActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerCmpNetworksListActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerTcfConsentStatusesListActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerTcfInfoListActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerTcfStringActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerTestLiveNetworkActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerTestModeNetworkActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerUnifiedFlowActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.mediation.MaxDebuggerWaterfallSegmentsActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.creative.MaxCreativeDebuggerActivity" android:theme="@style/com.applovin.creative.CreativeDebuggerActivity.Theme"/>
<activity android:configChanges="locale|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.applovin.creative.MaxCreativeDebuggerDisplayedAdActivity" android:theme="@style/com.applovin.creative.CreativeDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:exported="false" android:hardwareAccelerated="true" android:launchMode="singleTop" android:name="com.applovin.adview.AppLovinFullscreenActivity" android:screenOrientation="behind" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.sdk.AppLovinWebViewActivity"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.hybridAds.MaxHybridMRecAdActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.hybridAds.MaxHybridNativeAdActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerDetailActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerMultiAdActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerAdUnitsListActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerAdUnitWaterfallsListActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerAdUnitDetailActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerCmpNetworksListActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerTcfConsentStatusesListActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerTcfInfoListActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerTcfStringActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerTestLiveNetworkActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerTestModeNetworkActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerUnifiedFlowActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.mediation.MaxDebuggerWaterfallSegmentsActivity" android:theme="@style/com.applovin.mediation.MaxDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.creative.MaxCreativeDebuggerActivity" android:theme="@style/com.applovin.creative.CreativeDebuggerActivity.Theme"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.applovin.creative.MaxCreativeDebuggerDisplayedAdActivity" android:theme="@style/com.applovin.creative.CreativeDebuggerActivity.Theme"/>
<service android:exported="false" android:name="com.applovin.impl.adview.activity.FullscreenAdService" android:stopWithTask="false"/>
<activity android:configChanges="keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize" android:exported="false" android:name="com.facebook.ads.AudienceNetworkActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
<provider android:authorities="com.ea.games.r3_row.AudienceNetworkContentProvider" android:exported="false" android:name="com.facebook.ads.AudienceNetworkContentProvider"/>
@@ -217,11 +222,11 @@
</receiver>
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:hardwareAccelerated="true" android:name="com.tapjoy.TJAdUnitActivity" android:theme="@style/TranslucentTheme"/>
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:hardwareAccelerated="true" android:name="com.tapjoy.TJWebViewActivity" android:theme="@style/TranslucentTheme"/>
<activity android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:exported="false" android:hardwareAccelerated="true" android:name="com.unity3d.services.ads.adunit.AdUnitActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<activity android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:exported="false" android:hardwareAccelerated="true" android:name="com.unity3d.services.ads.adunit.AdUnitTransparentActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
<activity android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:exported="false" android:hardwareAccelerated="false" android:name="com.unity3d.services.ads.adunit.AdUnitTransparentSoftwareActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
<activity android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:exported="false" android:hardwareAccelerated="false" android:name="com.unity3d.services.ads.adunit.AdUnitSoftwareActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<activity android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:exported="false" android:hardwareAccelerated="true" android:name="com.unity3d.ads.adplayer.FullScreenWebViewDisplay" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:exported="false" android:hardwareAccelerated="true" android:name="com.unity3d.services.ads.adunit.AdUnitActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:exported="false" android:hardwareAccelerated="true" android:name="com.unity3d.services.ads.adunit.AdUnitTransparentActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:exported="false" android:hardwareAccelerated="false" android:name="com.unity3d.services.ads.adunit.AdUnitTransparentSoftwareActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:exported="false" android:hardwareAccelerated="false" android:name="com.unity3d.services.ads.adunit.AdUnitSoftwareActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:exported="false" android:hardwareAccelerated="true" android:name="com.unity3d.ads.adplayer.FullScreenWebViewDisplay" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
<provider android:authorities="com.ea.games.r3_row.androidx-startup" android:exported="false" android:name="androidx.startup.InitializationProvider">
<meta-data android:name="androidx.lifecycle.ProcessLifecycleInitializer" android:value="androidx.startup"/>
<meta-data android:name="com.unity3d.services.core.configuration.AdsSdkInitializer" android:value="androidx.startup"/>
@@ -229,14 +234,14 @@
<meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer" android:value="androidx.startup"/>
<meta-data android:name="androidx.profileinstaller.ProfileInstallerInitializer" android:value="androidx.startup"/>
</provider>
<activity android:configChanges="keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:hardwareAccelerated="true" android:launchMode="singleTop" android:name="com.vungle.ads.internal.ui.VungleActivity"/>
<activity android:configChanges="keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:hardwareAccelerated="true" android:launchMode="singleTop" android:name="com.vungle.ads.internal.ui.VungleActivity"/>
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
<activity android:configChanges="orientation|screenSize" android:launchMode="singleTop" android:name="com.helpshift.activities.HSMainActivity" android:theme="@style/Theme.AppCompat.NoActionBar"/>
<activity android:configChanges="orientation|screenSize" android:launchMode="singleTop" android:name="com.helpshift.activities.HSDebugActivity" android:theme="@style/Theme.AppCompat.NoActionBar"/>
<activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:exported="false" android:name="com.google.android.gms.ads.AdActivity" android:theme="@android:style/Theme.Translucent"/>
<activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:exported="false" android:name="com.google.android.gms.ads.AdActivity" android:theme="@android:style/Theme.Translucent"/>
<provider android:authorities="com.ea.games.r3_row.mobileadsinitprovider" android:exported="false" android:initOrder="100" android:name="com.google.android.gms.ads.MobileAdsInitProvider"/>
<service android:enabled="true" android:exported="false" android:name="com.google.android.gms.ads.AdService"/>
<activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:exported="false" android:name="com.google.android.gms.ads.OutOfContextTestingActivity"/>
<activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:exported="false" android:name="com.google.android.gms.ads.OutOfContextTestingActivity"/>
<activity android:excludeFromRecents="true" android:exported="false" android:launchMode="singleTask" android:name="com.google.android.gms.ads.NotificationHandlerActivity" android:taskAffinity="" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
<property android:name="android.adservices.AD_SERVICES_CONFIG" android:resource="@xml/gma_ad_services_config"/>
<service android:directBootAware="false" android:enabled="@bool/enable_system_alarm_service_default" android:exported="false" android:name="androidx.work.impl.background.systemalarm.SystemAlarmService"/>
@@ -384,4 +389,4 @@
<service android:exported="false" android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService" android:permission="android.permission.BIND_JOB_SERVICE"/>
<receiver android:exported="false" android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver"/>
</application>
</manifest>
</manifest>

60
KEYSTORE-README.md Normal file
View File

@@ -0,0 +1,60 @@
# RR3 Release Keystore
This keystore is used to sign all RR3 offline mod releases.
## Keystore Details
- **File:** rr3-release.keystore
- **Alias:** rr3key
- **Password:** rr3community
- **Key Algorithm:** RSA 2048-bit
- **Validity:** 10,000 days (~27 years)
- **Created:** 2026-02-18
## Usage
### Signing an APK
```bash
# Step 1: Zipalign
zipalign -v -p 4 input.apk aligned.apk
# Step 2: Sign
apksigner sign --ks rr3-release.keystore \
--ks-key-alias rr3key \
--ks-pass pass:rr3community \
--key-pass pass:rr3community \
--out signed.apk \
aligned.apk
# Step 3: Verify
apksigner verify -v signed.apk
```
### Windows PowerShell
```powershell
# Zipalign
& "path\to\zipalign.exe" -v -p 4 input.apk aligned.apk
# Sign
& "path\to\apksigner.bat" sign --ks rr3-release.keystore --ks-key-alias rr3key --ks-pass pass:rr3community --key-pass pass:rr3community --out signed.apk aligned.apk
# Verify
& "path\to\apksigner.bat" verify -v signed.apk
```
## Important Notes
⚠️ **Keep this keystore safe!** All future updates must be signed with the same key, otherwise users will have to uninstall the old version before installing updates.
⚠️ **This is a community keystore** with a simple password for ease of use. It's shared publicly in this repository.
## Certificate Information
- **Owner:** CN=RR3Community, OU=Modding, O=Community, L=Unknown, ST=Unknown, C=US
- **Valid until:** 02/18/2026 19:16:33.AddDays(10000).ToString('yyyy-MM-dd')
## Files in This Release
All APKs should be signed with this keystore before distribution.

View File

@@ -0,0 +1 @@
kotlinx.coroutines.android.AndroidExceptionPreHandler

View File

@@ -0,0 +1 @@
kotlinx.coroutines.android.AndroidDispatcherFactory

View File

@@ -1,65 +0,0 @@
# Real Racing 3 - Discord Community Version
This branch contains the modified APK being worked on by the Discord community.
## Version Info
- **Filename**: RR3_WORKIING_NO32BITCUZKYS signed.apk
- **Size**: 71.57 MB
- **Source**: Discord community development
## Key Changes from Original
### ❌ Removed Features
- **32-bit support (armeabi-v7a)** - This version is 64-bit only
- Original had both armeabi-v7a (22.56 MB) and arm64-v8a (31.57 MB)
- This version only includes arm64-v8a (31.57 MB)
- **Impact**: Will NOT work on older/budget Android devices
### ✅ Architecture Support
- **arm64-v8a only** (64-bit ARM)
- Requires Android device with 64-bit processor
- Minimum SDK: 26 (Android 8.0)
- Target SDK: 36 (Android 16)
### 📁 Contents
- `realracing3-community.apk` - Modified APK file
- `decompiled-community/` - Decompiled source code
- `resources/` - Assets, manifest, native libraries
- `sources/` - Java source code
## Native Libraries (arm64-v8a)
- libRealRacing3.so - 31.57 MB (main game engine)
- libfuelmetrics.so - 4.04 MB (analytics/metrics)
- libfmodex.so - 1.22 MB (audio engine)
- libc++_shared.so - 0.97 MB (C++ runtime)
- libapplovin-native-crash-reporter.so - 0.83 MB
- libcrashlytics-common.so - 0.72 MB
- And more...
## Comparison with Original
| Feature | Original (main branch) | Community Version |
|---------|----------------------|-------------------|
| 32-bit support | ✅ Yes | ❌ No |
| 64-bit support | ✅ Yes | ✅ Yes |
| APK Size | 100.32 MB | 71.57 MB |
| Device compatibility | Wider | Modern devices only |
## Why Remove 32-bit?
Removing 32-bit support:
- ✅ Reduces APK size by ~30 MB
- ✅ Simplifies development/testing
- ✅ Modern devices (2018+) are all 64-bit
- ❌ Breaks compatibility with older/budget phones
## Development
This is a work-in-progress community modification. Check Discord for:
- Latest changes
- Testing requests
- Feature discussions
---
**Note**: This branch is for community development. For the original APK, see the `main` branch.

View File

@@ -158,11 +158,13 @@ if ($uberSigner) {
exit 1
}
# Zipalign
# Zipalign with 16KB page alignment for Android 15+ (API 35+)
$zipalign = Get-Command zipalign -ErrorAction SilentlyContinue
if ($zipalign) {
$alignedApk = $OutputPath -replace '\.apk$', '-aligned.apk'
& zipalign -v 4 $OutputPath $alignedApk 2>&1 | Out-Null
# Use -P 16 flag for 16KB page size alignment (required for Android 15+)
# Note: -p does 4KB, -P 16 does 16KB
& zipalign -f -P 16 -v 16 $OutputPath $alignedApk 2>&1 | Out-Null
Move-Item -Path $alignedApk -Destination $OutputPath -Force
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,24 +1,151 @@
version: 2.12.1
apkFileName: real-racing-3-13-7-1.apk
version: 2.10.0
apkFileName: realracing3.apk
isFrameworkApk: false
usesFramework:
ids:
- 1
tag: null
sdkInfo:
minSdkVersion: 26
targetSdkVersion: 36
targetSdkVersion: 34
packageInfo:
forcedPackageId: 127
renameManifestPackage: null
versionInfo:
versionCode: 13701
versionName: 13.7.1
versionCode: 150000
versionName: 15.0.0-community-alpha
resourcesAreCompressed: false
sharedLibrary: false
sparseResources: false
unknownFiles:
DebugProbesKt.bin: 8
androidsupportmultidexversion.txt: 8
billing.properties: 8
byte_string_store.proto: 8
client_analytics.proto: 8
firebase-analytics.properties: 8
firebase-annotations.properties: 8
firebase-encoders-proto.properties: 8
firebase-encoders.properties: 8
firebase-iid-interop.properties: 8
firebase-measurement-connector.properties: 8
googleid.properties: 8
info.txt: 8
messaging_event.proto: 8
messaging_event_extension.proto: 8
play-services-ads-base.properties: 8
play-services-ads-identifier.properties: 8
play-services-ads-lite.properties: 8
play-services-ads.properties: 8
play-services-appset.properties: 8
play-services-auth-api-phone.properties: 8
play-services-auth-base.properties: 8
play-services-auth-blockstore.properties: 8
play-services-auth.properties: 8
play-services-base.properties: 8
play-services-basement.properties: 8
play-services-cloud-messaging.properties: 8
play-services-drive.properties: 8
play-services-fido.properties: 8
play-services-games-v2.properties: 8
play-services-identity-credentials.properties: 8
play-services-measurement-api.properties: 8
play-services-measurement-base.properties: 8
play-services-measurement-impl.properties: 8
play-services-measurement-sdk-api.properties: 8
play-services-measurement-sdk.properties: 8
play-services-measurement.properties: 8
play-services-stats.properties: 8
play-services-tasks.properties: 8
protolite-well-known-types.properties: 8
universal_request_store.proto: 8
user-messaging-platform.properties: 8
webview_configuration_store.proto: 8
fabric/com.amazonaws.aws-android-sdk-core.properties: 8
firebase/perf/v1/perf_metric.proto: 8
gatewayprotocol/v1/ad_data_refresh_request.proto: 8
gatewayprotocol/v1/ad_data_refresh_response.proto: 8
gatewayprotocol/v1/ad_player_config_request.proto: 8
gatewayprotocol/v1/ad_player_config_response.proto: 8
gatewayprotocol/v1/ad_request.proto: 8
gatewayprotocol/v1/ad_response.proto: 8
gatewayprotocol/v1/allowed_pii.proto: 8
gatewayprotocol/v1/bid_request_event.proto: 8
gatewayprotocol/v1/campaign_state.proto: 8
gatewayprotocol/v1/client_info.proto: 8
gatewayprotocol/v1/developer_consent.proto: 8
gatewayprotocol/v1/diagnostic_event_request.proto: 8
gatewayprotocol/v1/dynamic_device_info.proto: 8
gatewayprotocol/v1/error.proto: 8
gatewayprotocol/v1/get_token_event_request.proto: 8
gatewayprotocol/v1/header_bidding_ad_markup.proto: 8
gatewayprotocol/v1/header_bidding_token.proto: 8
gatewayprotocol/v1/initialization_completed_event_request.proto: 8
gatewayprotocol/v1/initialization_data.proto: 8
gatewayprotocol/v1/initialization_request.proto: 8
gatewayprotocol/v1/initialization_response.proto: 8
gatewayprotocol/v1/mutable_data.proto: 8
gatewayprotocol/v1/native_configuration.proto: 8
gatewayprotocol/v1/network_capability_transports.proto: 8
gatewayprotocol/v1/operative_event_request.proto: 8
gatewayprotocol/v1/pii.proto: 8
gatewayprotocol/v1/privacy_update_request.proto: 8
gatewayprotocol/v1/privacy_update_response.proto: 8
gatewayprotocol/v1/session_counters.proto: 8
gatewayprotocol/v1/static_device_info.proto: 8
gatewayprotocol/v1/test_data.proto: 8
gatewayprotocol/v1/timestamps.proto: 8
gatewayprotocol/v1/transaction_event_request.proto: 8
gatewayprotocol/v1/universal_request.proto: 8
gatewayprotocol/v1/universal_response.proto: 8
gatewayprotocol/v1/webview_configuration.proto: 8
google/protobuf/any.proto: 8
google/protobuf/api.proto: 8
google/protobuf/duration.proto: 8
google/protobuf/empty.proto: 8
google/protobuf/field_mask.proto: 8
google/protobuf/source_context.proto: 8
google/protobuf/struct.proto: 8
google/protobuf/timestamp.proto: 8
google/protobuf/type.proto: 8
google/protobuf/wrappers.proto: 8
okhttp3/internal/publicsuffix/NOTICE: 8
okhttp3/internal/publicsuffix/publicsuffixes.gz: 8
doNotCompress:
- arsc
- png
- so
- wav
- resources.arsc
- assets/dexopt/baseline.prof
- assets/dexopt/baseline.profm
- lib/arm64-v8a/libNimble.so
- lib/arm64-v8a/libRealRacing3.so
- lib/arm64-v8a/libapplovin-native-crash-reporter.so
- lib/arm64-v8a/libarcore_sdk_c.so
- lib/arm64-v8a/libarcore_sdk_jni.so
- lib/arm64-v8a/libc++_shared.so
- lib/arm64-v8a/libcrashlytics-common.so
- lib/arm64-v8a/libcrashlytics-handler.so
- lib/arm64-v8a/libcrashlytics-trampoline.so
- lib/arm64-v8a/libcrashlytics.so
- lib/arm64-v8a/libfmodex.so
- lib/arm64-v8a/libfuelmetrics.so
- lib/arm64-v8a/libgluads_shared.so
- lib/arm64-v8a/libtapjoy.so
- lib/armeabi-v7a/libNimble.so
- lib/armeabi-v7a/libRealRacing3.so
- lib/armeabi-v7a/libapplovin-native-crash-reporter.so
- lib/armeabi-v7a/libarcore_sdk_c.so
- lib/armeabi-v7a/libarcore_sdk_jni.so
- lib/armeabi-v7a/libc++_shared.so
- lib/armeabi-v7a/libcrashlytics-common.so
- lib/armeabi-v7a/libcrashlytics-handler.so
- lib/armeabi-v7a/libcrashlytics-trampoline.so
- lib/armeabi-v7a/libcrashlytics.so
- lib/armeabi-v7a/libfmodex.so
- lib/armeabi-v7a/libfuelmetrics.so
- lib/armeabi-v7a/libgluads_shared.so
- lib/armeabi-v7a/libtapjoy.so
- png
- res/raw/checksum.md5
- res/raw/keep_arcore.xml
- res/raw/keep_cronet_api.xml
- wav
- res/raw/res.zip

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
kotlinx.coroutines.android.AndroidExceptionPreHandler

View File

@@ -0,0 +1 @@
kotlinx.coroutines.android.AndroidDispatcherFactory

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
71a8c186d592f0ea87dc8056161b718d
f2ba88a9ee1a8a1314249a63c92d8f93

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,10 +1,10 @@
Signature-Version: 1.0
Created-By: 1.0 (Android)
SHA-256-Digest-Manifest: NivAph4J+Adx2l+D2YtkVgEdsCifGEsWIQZq67TqUqc=
SHA-256-Digest-Manifest: gmVWQcE8Cm8MlYiTmzUWAGKtKi9z93gPKPOerEs5ehA=
X-Android-APK-Signed: 2, 3
Name: AndroidManifest.xml
SHA-256-Digest: aMT9bEoyOztPs20G1q1dRuMP0rnRF4oogBvw3Myq+ng=
SHA-256-Digest: 3VWGcF5sLCcW0X7NNpfSi8X7vtrfNcxuTpzOjCf1EEM=
Name: DebugProbesKt.bin
SHA-256-Digest: 2TpdbTK3Kqamv4TArXLgsRkCb7TmXpqayJR+Uaixff4=
@@ -313,7 +313,7 @@ Name: assets/consentformMeta.json
SHA-256-Digest: 4ttvsHULBvLkELlRSOYNrEqGf4d9Q2vxoxo+4FgfZLs=
Name: assets/dexopt/baseline.prof
SHA-256-Digest: cDWCmH0zXjsOA18e08hUQsvvblR+KON0e1YRkPgrdH4=
SHA-256-Digest: KUXc6xQaUWGhIIQjCIUqAUFPApJxjSZSz15PpolWvfM=
Name: assets/dexopt/baseline.profm
SHA-256-Digest: 63fKb2Oelpl8FivWszstnFvqQpdrYTcZdveg6Xm7A5A=
@@ -352,19 +352,19 @@ Name: byte_string_store.proto
SHA-256-Digest: 4nCoszgUK0LwzK1LzjjNio7OVyT21zFBe67e9N2Aynw=
Name: classes.dex
SHA-256-Digest: Wf8qG0KRL3V3nOOxvKvPuxKFw239A/QGmaehx+GOiw8=
SHA-256-Digest: u+ktvSpNGYYfV8OdFNFv7Ys8B8E5CljvbpxhRpszTSY=
Name: classes2.dex
SHA-256-Digest: g7EOaBK/fGM9OT+GaEyPYOAZQcaNtV5ZlhFMcnR8Zzk=
SHA-256-Digest: TGKCVjkm3ezeyk0BJXn4wr20k+NkbA2Do4OahY0vcz4=
Name: classes3.dex
SHA-256-Digest: YVt/FYh4X83F4wXXlLrti429bBioQy73NqYqQyahAuU=
SHA-256-Digest: UFpQmgolLghwT92cyCbcdW/zRcvG7PHDBFQ9OLbOv+Y=
Name: classes4.dex
SHA-256-Digest: IjrQdq6e/JPxm1WoneuahdDEv9LKl8U2JjQfp78rWk8=
SHA-256-Digest: kqU+VkBysGk95o+ucHiEHj8om0hx803wdaNsUEx3mJs=
Name: classes5.dex
SHA-256-Digest: q4lc4jz3mm/y7c8dLunEPQkZSVNDHr7bKvQLsoV5dPw=
SHA-256-Digest: bAhdB/kOvSek7wJRo5pZAhhv9k9ldlCWNkVcGv/n49A=
Name: client_analytics.proto
SHA-256-Digest: EsiOhXZ9ARjm/oKvt02rDTapjzIdPYgYWzazsNC7GXU=
@@ -562,7 +562,7 @@ Name: lib/arm64-v8a/libNimble.so
SHA-256-Digest: Iqnl3Utu5F9cnTpYzPusavAJOs8VJtOStag+0IESeUk=
Name: lib/arm64-v8a/libRealRacing3.so
SHA-256-Digest: 0++B3rdETjhkqmj+bhw7Hi+k1phfFJTg9+pz5w+uKOw=
SHA-256-Digest: YSArG+mjRaElsqiLjJZPoqBkcp/XCrLunUAtFBF8clg=
Name: lib/arm64-v8a/libapplovin-native-crash-reporter.so
SHA-256-Digest: nOK4qXebpT4FdAf2sW6kr0xK2YScWeqXvEUVrHv+zdc=
@@ -604,7 +604,7 @@ Name: lib/armeabi-v7a/libNimble.so
SHA-256-Digest: QMqlFpLnbW1uL5lOg/s/sMFTfRvC/qKmDJDQtzf27F4=
Name: lib/armeabi-v7a/libRealRacing3.so
SHA-256-Digest: CIOX7wIufvy2swWG2JzoK5Qob2dFKjbgaM/JgdGxhx4=
SHA-256-Digest: O4oaZ/CxalNGQiv1sfE7JJ2SNNudQ9ZfFpfOiCSeADY=
Name: lib/armeabi-v7a/libapplovin-native-crash-reporter.so
SHA-256-Digest: kJVPDQREFpLvjS4bgoSHSGbhkWYmj/NnjMfkaa8UcQQ=
@@ -781,7 +781,7 @@ Name: res/-t.png
SHA-256-Digest: +a4g6zh/g3jXP1bi9v5GJp9W6K0QjQ1Q8rMDrU6XBQo=
Name: res/-v.md5
SHA-256-Digest: wC0n+a9vgioPFuUluHLHBGuXGwi1bgWncZPTOeDPGII=
SHA-256-Digest: onKQPv5xUO7xEzulNY1L1YCujEnaHBLHi6g3vORXbUA=
Name: res/02.png
SHA-256-Digest: hZHHfyykMWyWxzcSs1yxoXwogW0eu5tjXsQAWclkBjk=
@@ -5218,7 +5218,7 @@ Name: res/xR.xml
SHA-256-Digest: JYXofGJlgAEL3j8Yr/mRa7gaU1onV/xVKJ+6vTHmako=
Name: res/xR.zip
SHA-256-Digest: IpoKKui5HNFRozjfBRTfxr0juQyhbUgqNN+3PZ3uBVA=
SHA-256-Digest: Es80iMEYT8B2tTuRwzmEAey8+yFPQsxmkNoSRMfxv6I=
Name: res/xU.png
SHA-256-Digest: GAMI+jHHeDOEbeNixzsOZ7u6YUZm4fuoeIB9wcqpHqc=
@@ -5455,7 +5455,7 @@ Name: res/zx.png
SHA-256-Digest: ZAeT8ZISoSzolOOdXbYYuP79Nnu1jEkdkZroR/cN9BU=
Name: resources.arsc
SHA-256-Digest: aoahYNxrPW/wngRXcjRMkQSS2MdhGMK0xtMGkhhMc/s=
SHA-256-Digest: GdnzNMQCZwBUeefkQiFWKmtSpkC1kGJECzOGG6vHp/o=
Name: universal_request_store.proto
SHA-256-Digest: 7kmLW0Q7mOWYwLewiFEt4gPXHtOWQlGAL36wKECaD5U=

View File

@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Name: AndroidManifest.xml
SHA-256-Digest: Xd5MCWBV+N7LHHiwB5zkYUDbuCBhh7kanj9Pd/o7Qe8=
SHA-256-Digest: V7VPSrhSoIpMDccTNE9Iwgr4TUMyf3yVvFIyieSX4/Y=
Name: DebugProbesKt.bin
SHA-256-Digest: rooILdYJMTg1upPD70eaOvmQOXfXvcgd9Fu9IJ7H0No=
@@ -310,7 +310,7 @@ Name: assets/consentformMeta.json
SHA-256-Digest: C2PbnQpffWI3RERzkZKAO/0+nm73WjJqbcBtWLFTDv0=
Name: assets/dexopt/baseline.prof
SHA-256-Digest: xjcdYCdwYYB368vmT8nVMsIFZ1xlKLYTVR+ZJ9JLEM8=
SHA-256-Digest: oHpNzNxpbqKZh4U83LPctP4MZ+aprnTzhoyOneBNsY0=
Name: assets/dexopt/baseline.profm
SHA-256-Digest: XMVBMVYxCJ5o1PJwRBH0R/gicpeXrpop71uIMXzvEw8=
@@ -349,19 +349,19 @@ Name: byte_string_store.proto
SHA-256-Digest: 30GI1O2SV1Gy+Eg4YA5ZsaZLcqQ5nTJWmPu34KNb/e0=
Name: classes.dex
SHA-256-Digest: c+k5JGcvm9Mb8jlOAnG/iejCNaS3nDiWRLjnsEgjSi4=
SHA-256-Digest: T6gzVnpDoxqIDav2Ig8KMQga0Z7cYWKAwoeVdybCxb0=
Name: classes2.dex
SHA-256-Digest: g46mg5bDxlgQFKTNToog83AJ9PQ++49knte440+Hv2M=
SHA-256-Digest: Tsgii66BYoH0x5C9HS1xqeN96ntvL3pfj6UrWvAS4gU=
Name: classes3.dex
SHA-256-Digest: 5v4XOOx807Rqq3fL2ZEtSreQB+9wDdiFluDQ9CKZBn8=
SHA-256-Digest: mDdJOqRFJ84W67f0lfTY4RCNqEkVJV5Emp+A14xRVMo=
Name: classes4.dex
SHA-256-Digest: uMHkOpxkEy1fzZ2Yiti00dMRxNKW4TzfMmqAYqW2oHs=
SHA-256-Digest: /slohmK3YR4wk2uz1SGtpGCWc0mPfopOG43UFhimLMU=
Name: classes5.dex
SHA-256-Digest: i8SF3aN+YtOgrbpNL/eUZbiWA0mHCG5CleksQRpxygg=
SHA-256-Digest: hKAAiCBanJb5iGJQx506+wTE+CHYBwqESSjwJBkDvAo=
Name: client_analytics.proto
SHA-256-Digest: DHZzJ3Z3KyYFKFWPm2daSVKcrXhcQhyhG0hxebgWJhA=
@@ -559,7 +559,7 @@ Name: lib/arm64-v8a/libNimble.so
SHA-256-Digest: xTvkOMdhhS+3Vf3uB2L5wWccHNQ8dZO12/AqVuwlVmM=
Name: lib/arm64-v8a/libRealRacing3.so
SHA-256-Digest: DVBiK81DFU9pgYCKUUbfxOyYQqi1sJLzOikl1Lt4Y/E=
SHA-256-Digest: V+22MU+x9zkWRG3M8qqyIjqTKuY8zfIUnP/t21qnMFE=
Name: lib/arm64-v8a/libapplovin-native-crash-reporter.so
SHA-256-Digest: 07sTTAaqkq85lbGurB5370KccHv19MLtGW0EXUQc3xk=
@@ -601,7 +601,7 @@ Name: lib/armeabi-v7a/libNimble.so
SHA-256-Digest: KY+T78vKGmFdDVGSfRppOGxkQqEI6hn/M5NwbpfYZbk=
Name: lib/armeabi-v7a/libRealRacing3.so
SHA-256-Digest: KoaChfWKAzpW4IfvL+0apkj1XYJiLJyohjrz9qmFZDE=
SHA-256-Digest: +47ysmlfiKyQr2w5ZORlwN2Dfhb3b6sMe5KNAHDNMNo=
Name: lib/armeabi-v7a/libapplovin-native-crash-reporter.so
SHA-256-Digest: 8htSdus3oeVT7IQfylRrawXWHe51pe0APzjeiRnAD4w=
@@ -778,7 +778,7 @@ Name: res/-t.png
SHA-256-Digest: ClBjeC23e241VLK+pGtJN43pen9O8mXq17y6v4cueME=
Name: res/-v.md5
SHA-256-Digest: i+FN75ghPTXRB8nY9A/cqGP67AtUn9TQZhtoocEnuiE=
SHA-256-Digest: 0h4HYJiJi7WFpypf4uZaC/HCqV4EKtrNuNq/n466fvA=
Name: res/02.png
SHA-256-Digest: XR0uSaARO59s4hC11PoPRSonP08s4SP1lAONfldn4gE=
@@ -5215,7 +5215,7 @@ Name: res/xR.xml
SHA-256-Digest: KoaNGIy8NA152I9Q/HtIcsYkm5xScZMiJULOcLGWBoA=
Name: res/xR.zip
SHA-256-Digest: NeRitsRNyNPzWV0MZu34hFaMMxgs2GEyplArxc33GOk=
SHA-256-Digest: UR8rUWzldoyhk7a9LjQvtMdceQHKPhmcLnmTEjwCREo=
Name: res/xU.png
SHA-256-Digest: EY3+5i/SGFP4GTm5iqJWmErz3VEgWOF5VjwqLrgzywk=
@@ -5452,7 +5452,7 @@ Name: res/zx.png
SHA-256-Digest: pBoa7fItD69zVcWW4FBIbT38aCv7sCMvXwYdYBwUo2w=
Name: resources.arsc
SHA-256-Digest: iI8o3LMg3DVUvhjny5EcLHkcBdoCst5XUy2LgptZ2Zc=
SHA-256-Digest: jMgbX19FXKrd84x0ia+9gtujiWIfw4M2mvL2+AD1T5Y=
Name: universal_request_store.proto
SHA-256-Digest: vKL71X50SJyzGIsltmJmY2HyMiHi5ebJ/F6Qd386fZc=

View File

@@ -0,0 +1 @@
1.7.0

View File

@@ -0,0 +1 @@
1.4.1

View File

@@ -0,0 +1 @@
1.7.0

View File

@@ -0,0 +1 @@
1.7.0

View File

@@ -0,0 +1 @@
task ':arch:core:core-runtime:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
1.1.0

View File

@@ -0,0 +1 @@
1.8.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.15.0

View File

@@ -0,0 +1 @@
1.15.0

View File

@@ -0,0 +1 @@
1.5.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.3.0

View File

@@ -0,0 +1 @@
1.3.0

View File

@@ -0,0 +1 @@
1.5.7

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-livedata-core:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-livedata:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-process:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-runtime:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-service:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-viewmodel-savedstate:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-viewmodel:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
1.1.0

View File

@@ -0,0 +1 @@
1.3.1

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0-beta05

View File

@@ -0,0 +1 @@
1.0.0-beta05

View File

@@ -0,0 +1 @@
1.3.1

View File

@@ -0,0 +1 @@
1.2.1

View File

@@ -0,0 +1 @@
2.6.1

View File

@@ -0,0 +1 @@
2.6.1

View File

@@ -0,0 +1 @@
1.2.1

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
2.4.0

View File

@@ -0,0 +1 @@
2.4.0

View File

@@ -0,0 +1 @@
1.1.1

View File

@@ -0,0 +1 @@
1.2.0

View File

@@ -0,0 +1 @@
1.2.0

Some files were not shown because too many files have changed in this diff Show More