76 lines
3.4 KiB
Markdown
76 lines
3.4 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.
|
|

|
|
|
|
## What's different
|
|
|
|
[v2026.7.19]
|
|
- Skip 24h timer for free plays
|
|
|
|
[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](https://git.pinguin-software.de/DasMoorhuhn/bejeweled-classic/releases)
|
|
|
|
Please be aware that you'll need to uninstall the original version before installing this modified version and deactivate auto updates for this app in the google play store. You'll loose your current progress and also the ability of using google play services like purchases and achievements because they aren't available for modified applications (technical reason is the application signature). Tho once you've installed this modified version, you can back up your savestate as you like :)
|
|
|
|
### Ads
|
|
|
|
If you want to get rid of those annoying ads, set your DNS to 86.54.11.13 (noads.joindns4.eu) in your phone settings.
|
|
|
|
### 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` |