# bejeweled-classic ## The main issue Bejewled Classic (v3.8.1) has issues with newer high resolution screens, which results in forced landscape mode. In some cases, the inputs are all over the place. ![](.res/Screenshot_20260609_224457_Classic.png) ## What's different [v2026.7.7] - Changed storage location from `/data/app/0/...` to `/storage/emulated/0/Android/media/com.ea.gp.bej3/` for exposing the savestates and stored settings - Added new app version (can be either viewed in app info or ingame in the about menu) [v2026.6.10] - Changed the `xlargeScreens` from `false` to `true` to fix the forced landscape issue ## Fix ### Download [Download from releases]() ### DIY > Keep in mind that I use linux mint, so some stuff might be a bit different, depending on your distro. > Tools: > - default-jdk (more specific `apksigner` is needed) > - [apktool](https://apktool.org/docs/install) (newer versions do work better than what comes from the debian repos) > - aapt > - adb (optional) > - [diff](https://man7.org/linux/man-pages/man1/diff.1.html) (optional) > - [patch](https://man7.org/linux/man-pages/man1/patch.1.html) (optional if changes are applied by hand) 1. Download the apk or use the one which comes within this repo (I got it from [apkpure](https://apkpure.com/bejeweled-classic/com.ea.gp.bej3/download)) 2. decompile the apk `apktool d bejeweled_classic_3.8.1.apk -o out` 3. Run `sh apply_patch.sh` 4. Generate a key to sign the apk - `keytool -genkeypair -keystore bejeweled-classic.key -alias mykey -keyalg RSA -keysize 2048 -validity 10000` - Set a password for the key, for example using `openssl rand -hex 20` - Answer every question, except the organisation (use anything like your nickname or whatever), with a `.` dot and finally confirm with `yes` 5. Recompile and sign the apk with `sh recompile_and_sign.sh` - Alternativly run `sh recompile_and_install.sh` for directly installing it via adb 6. Install the `bejeweled_classic_fix.apk` by transfering it to your phone or via adb, make sure to uninstall the existing app beforehand ### Patching #### Apply patch ```sh sh apply_patch.sh ``` #### Generate `changes.patch` Decompile the same APK to `./out_orig/` and do you chancges in `./out/` ```sh sh generate_patch_diff.sh ``` You may want to add a different app version like `android:versionCode='18101' android:versionName='3.8.1_2026.7.7'` to the `AndroidManifest.xml` file, otherwise the version which will be displayed in app info will be `3.8.1`. ## Docker The docker image contains all needed tools to decompile/compile an APK. - Build the image: `docker compose build` - Run the container: `docker compose up -d` - Enter the container: `docker compose exec bejeweled-env bash`