Files
bejeweled-classic/README.md
2026-07-09 19:24:05 +02:00

67 lines
2.7 KiB
Markdown

# 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`