Compare commits

...

39 Commits

Author SHA1 Message Date
18e4aef4ca I2P for Android 2.5.0 2024-04-08 23:31:40 -04:00
5315e35adc I2P for Android 2.5.0 2024-04-08 23:23:24 -04:00
9ad9bc07ff Fix keystore name to produce signed build 2024-04-06 23:18:15 -04:00
bde92be29d Fix keystore path to produce signed build 2024-04-06 23:13:25 -04:00
849150ffa6 list keystore location at final step of CI so I can fix properties file 2024-04-06 23:08:51 -04:00
52dad19c7a list keystore location at final step of CI so I can fix properties file 2024-04-06 23:03:52 -04:00
e84a51097d fix base64 decode syntax 2024-04-05 16:13:54 -04:00
5289f5068a fix base64 decode syntax 2024-04-05 16:10:02 -04:00
09c7d9cfd8 fix base64 decode syntax 2024-04-05 16:06:12 -04:00
14d293fe6f Move keystore directory to runner user 2024-04-05 16:01:37 -04:00
7cd08cfd4c Assure keystore directory exists 2024-04-05 15:58:05 -04:00
aa22d83a44 fix syntax error 2024-04-05 15:10:11 -04:00
a1fd8d41b2 fix syntax error 2024-04-05 15:09:13 -04:00
9d24e68b57 remove secrets from sign.yml 2024-04-05 15:02:42 -04:00
d5e2804ea4 fix secret access to sign.yml 2024-04-05 14:58:33 -04:00
1edabd7252 fix secret access to sign.yml 2024-04-05 14:56:42 -04:00
52c1901eba fix secret access to sign.yml 2024-04-05 14:55:41 -04:00
a6f5221975 add secret access to sign.yml 2024-04-05 14:52:41 -04:00
caa57bbc3a add secret access to sign.yml 2024-04-05 14:51:34 -04:00
b28e5d741e add secret access to sign.yml 2024-04-05 14:50:20 -04:00
0f3a61390c fix typo in sign.yml 2024-04-05 14:46:58 -04:00
30a1f1d800 Create signing keys for dev-build specific builds 2024-04-05 14:41:38 -04:00
22d5d126f6 Create signing keys for dev-build specific builds 2024-04-05 14:36:18 -04:00
70e4ea810f Attempt signed CI builds(will fail right now) 2024-04-03 15:38:53 -04:00
b5c6e1489a Attempt signed CI builds(will fail right now) 2024-04-03 15:37:35 -04:00
333a1a49b1 Attempt CI builds 2024-04-03 15:26:58 -04:00
2ea93f106e unzip only tagged apk 2024-03-25 15:05:28 -04:00
d99ed0e5da Reduce timeout for release uploader 2024-03-25 14:53:34 -04:00
3881966ddb see if I can get trunk builds to work 2024-03-25 14:46:55 -04:00
9de9f46489 when a release is tagged copy over artifacts 2024-03-25 14:30:17 -04:00
149881522e specify a tag for non-trunk CI builds 2024-03-25 14:25:52 -04:00
df26d89310 attempt a trunk build too 2024-03-25 14:18:37 -04:00
707dcbbc78 create local.properties for routerjars 2024-03-25 14:08:25 -04:00
812aea9873 clone i2p.i2p in CI 2024-03-25 14:04:49 -04:00
aeb7614b62 clone i2p.i2p in CI 2024-03-25 14:00:30 -04:00
9bf9d27c5a use Java 11 in CI 2024-03-25 13:58:07 -04:00
f2cfe4cee5 start a CI build of the Android APK 2024-03-25 13:55:38 -04:00
45865ff5b9 Increment version code and upload to GPlay 2023-12-19 13:45:24 -05:00
96f9905952 Update I2P library version to 2.4.0 2023-12-19 13:44:04 -05:00
15 changed files with 299 additions and 4 deletions

73
.github/workflows/ant.yml vendored Normal file
View File

@ -0,0 +1,73 @@
# Mostly copied from https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-ant
# zlatinb
name: Java CI
on: [push]
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: GetText
run: sudo apt install gettext git
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
- name : Generate override.properties
run: |
rm -f override.properties
echo "build.built-by=GitHub Actions" >> override.properties
echo "noExe=true" >> override.properties
- name: build with Gradle
run: |
echo "i2psrc=$HOME/i2p.i2p" > routerjars/local.properties
git clone -b i2p-2.4.0 https://github.com/i2p/i2p.i2p "$HOME/i2p.i2p"
./gradlew assembleDebug
find . -name '*.apk'
- name: Upload i2p-debug-${{ github.sha }}.apk
uses: actions/upload-artifact@v4
with:
name: i2p-debug.apk
path: ./app/build/outputs/apk/free/debug/app-free-debug.apk
trunk:
runs-on: ubuntu-latest
steps:
- name: GetText
run: sudo apt install gettext git
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
- name : Generate override.properties
run: |
rm -f override.properties
echo "build.built-by=GitHub Actions" >> override.properties
echo "noExe=true" >> override.properties
grep -v I2P_ gradle.properties > gradle.properties.update
echo "I2P_VERSION=2.4.0-1" >> gradle.properties.update
echo "I2P_ANDROID_VERSION=2.4.0-1" >> gradle.properties.update
cp -v gradle.properties.update gradle.properties
- name: build with Gradle
run: |
echo "i2psrc=$HOME/i2p.i2p" > routerjars/local.properties
git clone -b master https://github.com/i2p/i2p.i2p "$HOME/i2p.i2p"
bash -c "cd $HOME/i2p.i2p && ./installer/resources/maven-dev-release.sh 1"
./gradlew assembleDebug
find . -name '*.apk'
- name: Upload i2p-debug-${{ github.sha }}.apk
uses: actions/upload-artifact@v4
with:
name: i2p-debug-trunk-${{ github.sha }}.apk
path: ./app/build/outputs/apk/free/debug/app-free-debug.apk

62
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,62 @@
name: Release
#on: [push]
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- 'i2p-android-*.*.*' # Release i2p-firefox-1.2.3
- 'i2p-android-*.*.*-*' # Release i2p-firefox-1.2.3
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
sparse-checkout: |
CHANGELOG.md
sparse-checkout-cone-mode: false
- name: sleep 6 minutes
run: |
echo "sleeping 6 minutes to wait for artifacts"
sleep 1m
echo "sleeping 5 minutes to wait for artifacts"
sleep 1m
echo "sleeping 4 minutes to wait for artifacts"
sleep 1m
echo "sleeping 3 minutes to wait for artifacts"
sleep 1m
echo "sleeping 2 minutes to wait for artifacts"
sleep 1m
echo "sleeping 1 minutes to wait for artifacts"
sleep 1m
- name: Download artifacts
id: download-artifact
uses: dawidd6/action-download-artifact@v3
with:
skip_unpack: true
workflow: ant.yml
if_no_artifact_found: fail
# remove .zip file extension
#- run: for f in *.zip; do unzip "$f"; rm "$f"; done
- run: unzip i2p-debug.apk.zip
- run: echo "" | tee -a RELEASE.md
- run: echo "## Checksums" | tee -a RELEASE.md
- run: echo "" | tee -a RELEASE.md
- run: echo '```' | tee -a RELEASE.md
- run: sha256sum * | tee -a RELEASE.md
- run: echo '```' | tee -a RELEASE.md
- run: echo "" | tee -a RELEASE.md
- run: echo '```' | tee -a RELEASE.md
- run: file * | tee -a RELEASE.md
- run: echo '```' | tee -a RELEASE.md
- run: echo "" | tee -a RELEASE.md
- name: Upload artifacts
uses: ncipollo/release-action@v1
with:
artifacts: "*"
bodyFile: "RELEASE.md"

95
.github/workflows/sign.yml vendored Normal file
View File

@ -0,0 +1,95 @@
# Mostly copied from https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-ant
# zlatinb
name: Java Signed CI
on: [push]
permissions:
contents: read
pages: write
id-token: write
jobs:
build-signed:
runs-on: ubuntu-latest
steps:
- name: GetText
run: sudo apt install gettext git
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
- name: Generate override.properties
env:
DEV_SIGNING_KEY: ${{ secrets.DEV_SIGNING_KEY }}
DEV_PASSWORD: ${{ secrets.DEV_PASSWORD }}
run: |
rm -f override.properties
mv etc/github.gradle.properties gradle.properties
mv etc/github.signing.properties signing.properties
mkdir -p $HOME/keystores/
echo $DEV_SIGNING_KEY | base64 --decode > $HOME/keystores/android-release.keystore
echo "KEY_ALIAS=mykey" >> signing.properties
echo "KEY_PASSWORD=$DEV_PASSWORD" >> signing.properties
echo "build.built-by=GitHub Actions" >> override.properties
echo "noExe=true" >> override.properties
- name: build with Gradle
run: |
echo "i2psrc=$HOME/i2p.i2p" > routerjars/local.properties
git clone -b i2p-2.4.0 https://github.com/i2p/i2p.i2p "$HOME/i2p.i2p"
./gradlew assembleRelease
find . -name '*.apk'
ls -lah $HOME/keystores/android-release.keystore
ls -d $HOME
- name: Upload i2p-debug-${{ github.sha }}.apk
uses: actions/upload-artifact@v4
with:
name: i2p-debug.apk
path: ./app/build/outputs/apk/free/debug/app-free-debug.apk
trunk-signed:
runs-on: ubuntu-latest
steps:
- name: GetText
run: sudo apt install gettext git
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
- name: Generate override.properties
env:
DEV_SIGNING_KEY: ${{ secrets.DEV_SIGNING_KEY }}
DEV_PASSWORD: ${{ secrets.DEV_PASSWORD }}
run: |
rm -f override.properties
echo "build.built-by=GitHub Actions" >> override.properties
echo "noExe=true" >> override.properties
mv etc/github.gradle.properties gradle.properties
mv etc/github.signing.properties signing.properties
mkdir -p $HOME/keystores/
echo $DEV_SIGNING_KEY | base64 --decode > $HOME/keystores/android-release.keystore
echo "KEY_ALIAS=mykey" >> signing.properties
echo "KEY_PASSWORD=$DEV_PASSWORD" >> signing.properties
grep -v I2P_ gradle.properties > gradle.properties.update
echo "I2P_VERSION=2.4.0-1" >> gradle.properties.update
echo "I2P_ANDROID_VERSION=2.4.0-1" >> gradle.properties.update
cp -v gradle.properties.update gradle.properties
- name: build with Gradle
run: |
echo "i2psrc=$HOME/i2p.i2p" > routerjars/local.properties
git clone -b master https://github.com/i2p/i2p.i2p "$HOME/i2p.i2p"
bash -c "cd $HOME/i2p.i2p && ./installer/resources/maven-dev-release.sh 1"
./gradlew assembleRelease
find . -name '*.apk'
ls -lah $HOME/keystores/android-release.keystore
ls -d $HOME
- name: Upload i2p-debug-${{ github.sha }}.apk
uses: actions/upload-artifact@v4
with:
name: i2p-debug-trunk-${{ github.sha }}.apk
path: ./app/build/outputs/apk/free/debug/app-free-debug.apk

View File

@ -1,3 +1,9 @@
2.4.0
* Update I2P Library
2.3.0
* Update I2P Library
2.2.0
* Add blocklist feed support
* Fix translations on stats page

View File

@ -33,7 +33,7 @@ translation.
5. Ensure you have the Mockito framework and accompanying documentation in your $JAVA_HOME
6. Ensure to have updated the changelog with the changes done.
7. Ensure that you are configured to build i2p.i2p with Java 8. On Debian it is easiest to set with
`update-java-alternatives --set java-8-openjdk-amd64` and picking Java 8. **TODO:** add instructions for non-Debian-based
`update-java-alternatives --set java-1.8.0-openjdk-amd64` and picking Java 8. **TODO:** add instructions for non-Debian-based
systems.
8. Ensure that you have a Java 1.7 bootclasspath available. (See **Maven Central** step 2A.)

View File

@ -8,7 +8,7 @@ repositories {
android {
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
defaultConfig {
versionCode 4745279
versionCode 4745281
versionName "$I2P_ANDROID_VERSION"
minSdkVersion 21
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)

View File

@ -46,6 +46,7 @@
<string name="action_refresh">تحديث</string>
<string name="stats_not_ready">مدير الإحصاءات غير جاهز حاليا. يرجى المحاولة لاحقا</string>
<string name="routers">الموجه</string>
<string name="countries">بلدان</string>
<string name="country">البلد</string>
<string name="transport">نقل</string>
<string name="version">إصدار</string>

View File

@ -25,6 +25,7 @@
<string name="firewalled">Firewalled</string>
<string name="symmetric_nat">Symetrický NAT</string>
<!--Parameter is a time, e.g. 32s or 2m-->
<string name="uptime">Dostupnost</string>
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
<string name="char_client_tunnel">C</string>
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->

View File

@ -84,6 +84,7 @@
<string name="name">Navn</string>
<string name="description">Beskrivelse</string>
<string name="use_ssl">Brug SSL</string>
<string name="profile">Profil</string>
<string name="access_control">Adgangskontrol</string>
<string name="disabled">Deaktiveret</string>
<string name="http_client">HTTP klient</string>

View File

@ -115,6 +115,11 @@
<string name="notification_status_peers">Pares: %1$d ativos, %2$d conhecidos</string>
<string name="notification_status_expl">Túneis exploratórios: %1$d/%2$d</string>
<string name="notification_status_client">Túneis cliente: %1$d/%2$d</string>
<string name="stats_memory">Memória usada/max</string>
<string name="stats_lag">Atraso no trabalho</string>
<string name="stats_delay">Atraso de mensagem</string>
<string name="copied_base32_system_notification_title">Base32 copiado para a área de transferência</string>
<string name="copied_base32_system_notification_body">O endereço do túnel I2P foi copiado para a área de transferência.</string>
<string name="menu_settings">Especificações</string>
<string name="settings_enable">Ativar</string>
<string name="settings_desc_subscriptions">URLs para inscrição</string>
@ -147,6 +152,13 @@
<string name="settings_label_transports">Transportes</string>
<string name="settings_label_maxConns">Número máximo de conexões</string>
<string name="settings_label_i2cp">Interface do I2CP</string>
<string name="settings_desc_i2cp">Permitir que aplicativos de terceiros criem túneis usando I2CP (requer a reinicialização do roteador)</string>
<string name="settings_label_sam">Interface SAM</string>
<string name="settings_desc_sam">Permitir que aplicativos de terceiros criem túneis usando SAM (requer a reinicialização do roteador)</string>
<string name="settings_confirm_sam">Um aplicativo está tentando fazer uma conexão SAM.</string>
<string name="settings_confirm_sam_id">Nome/ID da conexão:</string>
<string name="settings_confirm_allow_sam">Toque para permitir</string>
<string name="settings_confirm_deny_sam">Ignorar para negar</string>
<string name="settings_label_exploratory_pool">Reservatório exploratório</string>
<string name="settings_desc_exploratory_pool">Parâmetros do túnel</string>
<string name="settings_label_expl_inbound">Túneis entrantes</string>
@ -171,6 +183,7 @@
<string name="about_bugs">Falhas e Suporte:</string>
<string name="about_helpwanted">Procura-se ajuda!</string>
<string name="about_volunteer">Quer ajudar a tornar o aplicativo melhor? Seja voluntário no fórum Android:</string>
<string name="about_gitlab">Quer sugerir um recurso ou corrigir um bug? faça uma solicitação de mesclagem no Gitlab do Android:</string>
<string name="menu_help">Ajuda</string>
<string name="general">Geral</string>
<string name="label_router">Endereços públicos</string>
@ -231,6 +244,7 @@
<string name="enabled">Ativado</string>
<string name="i2ptunnel_wizard_desc_name">O nome do túnel, para identificação na lista de túneis.</string>
<string name="i2ptunnel_wizard_desc_desc">Uma descrição do túnel. Isso é opcional e puramente informativo.</string>
<string name="i2ptunnel_wizard_desc_dest">Especifique o endereço .i2p ou o destino (hostname.i2p, b32 ou b64) do túnel aqui.</string>
<string name="i2ptunnel_wizard_desc_outproxies">Se você souber de algum proxies de saída para este tipo de túnel (seja HTTP ou SOCKS), digite-os. Separe os múltiplos proxies com vírgulas.</string>
<string name="i2ptunnel_wizard_desc_target_host">Esse é o IP no qual o serviço está rodando, isto está geralmente na mesma maquina então 127.0.0.1 é autopreenchido.</string>
<string name="i2ptunnel_wizard_desc_target_port">Essa é a porta pela qual o serviço está aceitando conexões.</string>
@ -357,4 +371,5 @@
<string name="label_browser_configuration">Configuração do navegador</string>
<string name="no_market_app">Nenhum aplicativo de mercado encontrado, por favor, instale manualmente</string>
<string name="unset">Desligado</string>
<string name="running_background">I2P está sendo executado em segundo plano</string>
</resources>

View File

@ -115,6 +115,11 @@
<string name="notification_status_peers">Nós: %1$d ativos, %2$d conhecidos</string>
<string name="notification_status_expl">Túneis exploratórios: %1$d/%2$d</string>
<string name="notification_status_client">Túneis de cliente: %1$d/%2$d</string>
<string name="stats_memory">Memória usada/max</string>
<string name="stats_lag">Atraso no trabalho</string>
<string name="stats_delay">Atraso de mensagem</string>
<string name="copied_base32_system_notification_title">Base32 copiado para a área de transferência</string>
<string name="copied_base32_system_notification_body">O endereço do túnel I2P foi copiado para a área de transferência.</string>
<string name="menu_settings">Configurações</string>
<string name="settings_enable">Ativar</string>
<string name="settings_desc_subscriptions">URLs de Subscrição</string>
@ -147,6 +152,13 @@
<string name="settings_label_transports">Transportes</string>
<string name="settings_label_maxConns">Nr. máx. de ligações</string>
<string name="settings_label_i2cp">Interface I2CP</string>
<string name="settings_desc_i2cp">Permitir que aplicativos de terceiros criem túneis usando I2CP (requer a reinicialização do roteador)</string>
<string name="settings_label_sam">Interface SAM</string>
<string name="settings_desc_sam">Permitir que aplicativos de terceiros criem túneis usando SAM (requer a reinicialização do roteador)</string>
<string name="settings_confirm_sam">Um aplicativo está tentando fazer uma conexão SAM.</string>
<string name="settings_confirm_sam_id">Nome/ID da conexão:</string>
<string name="settings_confirm_allow_sam">Toque para permitir</string>
<string name="settings_confirm_deny_sam">Ignorar para negar</string>
<string name="settings_label_exploratory_pool">Poço exploratório</string>
<string name="settings_desc_exploratory_pool">Parâmetros dos túneis</string>
<string name="settings_label_expl_inbound">Túneis de entrada</string>
@ -171,6 +183,7 @@
<string name="about_bugs">Erros e Suporte</string>
<string name="about_helpwanted">Preciso de Ajuda!</string>
<string name="about_volunteer">Queres tornar a aplicação melhor? Voluntariar-te no fórum do Android </string>
<string name="about_gitlab">Quer sugerir um recurso ou corrigir um bug? faça uma solicitação de mesclagem no Gitlab do Android:</string>
<string name="menu_help">Ajuda</string>
<string name="general">Geral</string>
<string name="label_router">Endereços públicos</string>
@ -231,6 +244,7 @@
<string name="enabled">Ativado</string>
<string name="i2ptunnel_wizard_desc_name">O nome do túnel, para identificação na lista de túneis.</string>
<string name="i2ptunnel_wizard_desc_desc">A descrição do túnel. Este elemento é opcional e puramente informativo.</string>
<string name="i2ptunnel_wizard_desc_dest">Especifique o endereço .i2p ou o destino (hostname.i2p, b32 ou b64) do túnel aqui.</string>
<string name="i2ptunnel_wizard_desc_outproxies">Pode aqui introduzir proxies de saída para este tipo de túnel (HTTP ou SOCKS). Separe as proxies com vírgulas.</string>
<string name="i2ptunnel_wizard_desc_target_host">Este é o endereço IP no qual o seu serviço I2P está a correr. Normalmente corresponde à mesma máquina, portanto é automaticamente preenchido com 127.0.0.1.</string>
<string name="i2ptunnel_wizard_desc_target_port">Este é a porta na qual o seu serviço aceita ligações.</string>
@ -357,4 +371,5 @@
<string name="label_browser_configuration">Configuração do navegador</string>
<string name="no_market_app">Nenhum aplicativo de mercado encontrado, por favor, instale manualmente</string>
<string name="unset">Desselecionar</string>
<string name="running_background">I2P está sendo executado em segundo plano</string>
</resources>

View File

@ -28,6 +28,7 @@
<string name="action_reload">Tải lại</string>
<string name="action_refresh">Nạp lại</string>
<string name="statistics">Thống kê</string>
<string name="countries">Quốc Gia</string>
<string name="country">Quốc gia</string>
<string name="version">Phiên bản</string>
<string name="count">Số lượng</string>

View File

@ -0,0 +1,23 @@
GROUP=net.i2p.android
org.gradle.jvmargs=-Xmx1536M
POM_URL=https://github.com/i2p/i2p.android.base
POM_SCM_URL=https://github.com/i2p/i2p.android.base
POM_SCM_CONNECTION=scm:git:git@github.com:i2p/i2p.android.base.git
POM_SCM_DEV_CONNECTION=scm:git:git@github.com:i2p/i2p.android.base.git
POM_LICENCE_NAME=The Apache Software License, Version 2.0
POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
POM_LICENCE_DIST=repo
POM_DEVELOPER_ID=github-ci
POM_DEVELOPER_NAME=github-ci
POM_DEVELOPER_EMAIL=hankhill19580@gmail.com
ANDROID_BUILD_TARGET_SDK_VERSION=33
ANDROID_BUILD_SDK_VERSION=33
I2P_VERSION=2.4.0
I2P_ANDROID_VERSION=2.4.0
android.disableAutomaticComponentCreation=true
android.useAndroidX=true

View File

@ -0,0 +1,2 @@
STORE_FILE=/home/runner/keystores/android-release.keystore
KEY_ALIAS=mykey

View File

@ -17,7 +17,7 @@ POM_DEVELOPER_EMAIL=hankhill19580@gmail.com
ANDROID_BUILD_TARGET_SDK_VERSION=33
ANDROID_BUILD_SDK_VERSION=33
I2P_VERSION=2.3.0
I2P_ANDROID_VERSION=2.3.0
I2P_VERSION=2.5.0
I2P_ANDROID_VERSION=2.5.0
android.disableAutomaticComponentCreation=true
android.useAndroidX=true