The build options are refactored in new release 1.0.4+0650, defaulting to building from source, local.properties no longer required. See .github/workflows/release.yml
@donmor
https://gitlab.com/-/project/2167965/uploads/45e0e3561dc167926d7feface2f31c19/top.donmor.droidfrpd_104.apk
thanks, forgot where to report ![]()
Building with NDKr27 will make it impossible to run on 16K kernels introduced in Android 16 (as binaries will be 4K-aligned). Add ndk.version=28.2.13676358 to local.propertiesand install this NDK version in the container.
There’s no need to sed go executable if the right gois in path (it uses envcommand). Run export PATH=/path/to/go/bin/go:$PATHto setup it.
Downgrading from agp9alpha10 to 8.11.2 complained it needed ndk 27, not my choice ![]()
Debian does not have ALL golang versions, so we need to build and force use the one YOU asked for in go.mod.
There’s no container, just a Debian VM
That’d be tricky… Then install both r27 and r28, and specify ndk.version=28.2.13676358in local.properties to force to r28. It should work ![]()
I think adding /path/to/built/go/bin/go to PATH is enough ![]()
I’m making a Makefile which could be helpful ![]()
Between stages the environment is not shared, after build: a new stage starts that runs gradle .... (It’s defined by gradle: yes above)
Why do this DroidFRPD/app/build.gradle at master · donmor/DroidFRPD · GitHub instead of defining the actual ndk?
This redefines project’s ndk if ndk.version defined in build.gradle(instead of AGP’s default ndk).
It actually works… I tried executing go versionin a gradle task.
Pushed a new tag 1.0.5+0650 with some minor changes and a Makefile.
…And immediately 1.0.6+0650 with a bug fixed and some minor changes.
pls read again ![]()
we can’t use DroidFRPD/gradle/libs.versions.toml at 1.0.6+0650 · donmor/DroidFRPD · GitHub as said above
Hmm… Yes, it is necessary to patch libs.version.toml (until agp9 goes stable). Then compile/download go 1.24.0 and add go/bin to PATH (in the very front), add ndk.version=28.2.13676358to local.properties, run make install_sdk and make universal (I think it should work).
make install_sdkinstalls build-tools;36.0.0 platforms;android-36 ndk;28.2.13676358 (36is from compileSdk; 28.2.13676358 is from what is set in local.properties).
What make universalactually do: create local.propertiesif it is not exist and remove previous configs from it (if any); write config lines to local.properties(or write nothing since nothing special is specified); call make all(which executes ./gradlew assembleRelease, and mkdir app/release); move built apk to app/release; remove generated configs from local.properties; remove local.properties if it is empty.
I’m not familiar to f-droid’s build system, but it seems that assembleRelease is executed at the end of build. I think this may help:
build:
- pushd $$go$$/src
- ./make.bash
- echo export PATH=`pwd`/../bin:\$PATH >> ~/.bashrc
- popd
- echo ndk.version=28.2.13676358 > local.properties
- $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager install build-tools;36.0.0 platforms;android-36 ndk;28.2.13676358
I’m not sure how $ in $ANDROID_HOME/$PATH should be escaped… And, is it true that every single line is a new shell in build? Then PATH have to be set in .bashrc.
NEARBY_WIFI_DEVICES permission is redundant and is removed in 1.0.7.
Also the apks built by the build system is proved to be reproducible and is in IzzyOnDroid repo now
This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.


