dgmltn / AndieGraph

Apache License 2.0
36 stars 15 forks source link

64 bit compatibility #8

Open webslinger283 opened 1 year ago

webslinger283 commented 1 year ago

Great program. I had been using it since 2011 or 2012. I recently upgraded to the Pixel 7 Pro which only allows 64-bit programs to be installed. As a result, I cannot install AndieGraph, and I miss it A LOT!! is there anyway to revise the code to 64 bit without too much pain and suffering? I have installed AlmostTI but don't like the interface as much. I consider the much more streamlined AndieGraph to be far superior. I would be happy to pay for the effort. Thanks for all your work!

akx commented 1 year ago

I can give this a shot, I'm in the same boat as you...

webslinger283 commented 1 year ago

that would be great, I will be happy to send a tip if you can get it working! Just keep me posted, thanks.

Paitor85 commented 1 year ago

Any news @akx ?

girst commented 9 months ago

I've recompiled the app with sdk-28 (chosen arbitrarily) and it works on aarch64/android14 without changing the code. I did have to fuzz around with the build config, though. After installing, I had to manually enable the Files permission (it won't ask itself and can't find the ROMs without)

You generally shouldn't trust binaries from strangers but here y'all go: andiegraph-apks.zip

there are 2 versions inside:

i promise i didn't hide a virus in them, but i'm just some dude on the internet. so use these on your own risk.

high level build instructions (for generous interpretations of the word ""instructions"") these are my notes of what i did to get these builds. i tried to get it to work with sdk 25 (which is the one andiegraph used to use) but i ran into build issues. probably resolvable, but i gave up. i'm just following random instructions from stackoverflow and github issues, so ymmv. ``` rebuilding AndieGraph for aarch64 0. dnf install podman 1. podman run -it --rm --device /dev/kvm androidsdk/android-28:latest bash # select docker.io registry 2. wget https://dl.google.com/android/repository/android-ndk-r25c-linux.zip && unzip android-ndk-r25c-linux.zip -d /opt 3. git clone https://github.com/dgmltn/AndieGraph 4. echo android.deprecatedNdkCompileLease=`date +%s000` >> gradle.properties 5. echo ndk.dir=/opt/android-ndk-r25c >> local.properties 6. apply fixes from https://github.com/flutter/flutter/issues/22470#issuecomment-426794850 7. modify app/build.gradle to reference version 28 instead of 25 everywhere and add linting config and extra repos (mvn, google) 8. ./gradlew build 9. find -name *.apk 10. sign with https://stackoverflow.com/a/24833908 11. podman cp ${container}:${apk_path} . after installing on android, go to app-info and allow 'Files' permission, or roms won't show up. ``` here are all the changes i made in steps 4-7: ``` diff --git a/app/build.gradle b/app/build.gradle index c50659c..2620058 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,13 +1,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 25 - buildToolsVersion "25.0.2" + compileSdkVersion 28 + buildToolsVersion "28.0.2" defaultConfig { applicationId 'net.supware.tipro' minSdkVersion 19 - targetSdkVersion 25 + targetSdkVersion 28 versionCode 1 versionName "1.0" @@ -26,10 +26,14 @@ android { } productFlavors { } + + lintOptions { + abortOnError false + } } dependencies { - compile 'com.android.support:appcompat-v7:25.1.1' - compile 'com.android.support:support-v4:25.1.1' + compile 'com.android.support:appcompat-v7:28.0.0' + compile 'com.android.support:support-v4:28.0.0' } diff --git a/build.gradle b/build.gradle index b193299..332f1b2 100644 --- a/build.gradle +++ b/build.gradle @@ -2,10 +2,12 @@ buildscript { repositories { + google() jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.0' + classpath 'com.android.tools.build:gradle:3.2.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -14,6 +16,8 @@ buildscript { allprojects { repositories { + google() jcenter() + mavenCentral() } } diff --git a/gradle.properties b/gradle.properties index 89e0d99..3f03fde 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,3 +16,4 @@ # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true +android.deprecatedNdkCompileLease=1706389580088 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 17d7b4f..34580f2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip ```
Paitor85 commented 9 months ago

Thank you @girst . Fixed fullscreen on Xperia 5 V for me.

deckaddict commented 9 months ago

@girst : Nice to see you using the branch.

I do not recall how the default contrast is set. But if everything is too dark or too bright one may need to use 2nd+up/down to change contrast. This changeset was there to be able to get the cool fade in/out effects one could see in real life in demos like "Ride" by Linus Åkesson.

But maybe I misunderstand the problem you had.

girst commented 9 months ago

On Sun, Jan 28, 2024 at 07:24:41AM -0800, deckaddict wrote:

I do not recall how the default contrast is set. But if everything is too dark or too bright one may need to use 2nd+up/down to change contrast.

oh, i didn't try that. i don't think i saved that build and i'm too lazy to re-download gigabytes of container images, so it is what it is :/

This changeset was there to be able to get the cool fade in/out effects one could see in real life in demos like "Ride" by Linus Åkesson.

i didn't know lft did ti demos. if you know of a recording of it, i'd like to watch it.

deckaddict commented 9 months ago

@girst He has done demos for other platforms as well. I made a recording that you can find here. https://github.com/deckaddict/my-large-files/raw/master/TI83-Ride-Demo.mp4

akx commented 9 months ago

@girst Nice job! I'll see if I can package that up into automatic GitHub Actions magic...

EDIT: https://github.com/akx/AndieGraph/pull/1 seems to work

chrisnappi commented 8 months ago

@girst and @deckaddict thanks so much for your work here! (sorry I know this isn't a forum, but figure this audience is small enough)