Voit itse lisätä ja muuttaa sisältöä muokkaa-painikkeiden avulla

Ennen tallennusta suositellaan ottamaan kopio muokkausruudusta (ctrl-a -> ctrl-c)

 Olet itse vastuussa tämän teoksen käytöstä aiheutuvista vahingoista Lue lisää.

Ero sivun ”ATAK lisäosa” versioiden välillä

Wikikko - kansan taitopankkista
Siirry navigaatioon Siirry hakuun
 
(2 välissä olevaa versiota samalta käyttäjältä ei näytetä)
Rivi 2: Rivi 2:
Tällä sivulla käsitellään lisäosan kehittämistä ja ohjelmointia. Olemassa olevista lisäosista Wikikon sivulla: [[ATAK]].  
Tällä sivulla käsitellään lisäosan kehittämistä ja ohjelmointia. Olemassa olevista lisäosista Wikikon sivulla: [[ATAK]].  


Lisäosilla voi lisätä haluttuja toimintoja ATAKiin ja yhdistää muihin sovelluksiin. Lisäosassa hyödynnetään ATKA-sovelluksen perustoimintoja tarpeen mukaan.  
Lisäosilla voi lisätä haluttuja toimintoja ATAKiin ja yhdistää muihin sovelluksiin. Lisäosassa hyödynnetään ATAK-sovelluksen perustoimintoja tarpeen mukaan.  


Omatekoista lisäosaa varten tarvitaan:
Omatekoista lisäosaa varten tarvitaan:
Rivi 15: Rivi 15:
== Android Studio ==
== Android Studio ==
Lisäosia kehitetään Android Studion avulla.
Lisäosia kehitetään Android Studion avulla.
* Tällä sivulla on käytetty Androis Studio Otter 2 Feature Drop | 2025.2.2 (macOS).  
* Tällä sivulla on käytetty Android Studio Otter 2 Feature Drop | 2025.2.2 (macOS).  


=== Asennus macOS ===
=== Asennus macOS ===
Rivi 22: Rivi 22:


=== ATAK SDK ===
=== ATAK SDK ===
SDK:n avulla Android Studiossa tehdään ATAK-lisäosien kehittäminen. SDK-paketista löytyy ATAK-sovelluksen kehitysversio (developer build), jossa ajettavia sovelluksia ei tarvitse allekirjoittaa. Tämä ATAK-sovellus voidaan asentaa sekä Android Studion emulaattoriin tai Anroid-päätelaitteeseen.  
SDK:n avulla Android Studiossa tehdään ATAK-lisäosien kehittäminen. SDK-paketista löytyy ATAK-sovelluksen kehitysversio (developer build), jossa ajettavia sovelluksia ei tarvitse allekirjoittaa. Tämä ATAK-sovellus voidaan asentaa sekä Android Studion emulaattoriin tai Android-päätelaitteeseen.  
# Ladataan ja puretaan ATAK-CIV-XXX-SDK.zip: tak.gov > Login > Products > ATAK-CIV > Developer Resources > ATAK-CIV-XXX-SDK.zip > puretaan zip ja siirretään haluttuun hakemistoon omassa tiedostojärjestelmässä. Älä siirrä purettua tiedostoa tämän jälkeen toiseen kansioon!
# Ladataan ja puretaan ATAK-CIV-XXX-SDK.zip: tak.gov > Login > Products > ATAK-CIV > Developer Resources > ATAK-CIV-XXX-SDK.zip > puretaan zip ja siirretään haluttuun hakemistoon omassa tiedostojärjestelmässä. Älä siirrä purettua tiedostoa tämän jälkeen toiseen kansioon!
# Katso alla '''Helloworld-lisäosan asennus emulaattoriin''', miten Android Studion perusasetukset asetetaan ATAK-lisäosien kehitystyötä varten.  
# Katso alla '''Helloworld-lisäosan asennus emulaattoriin''', miten Android Studion perusasetukset asetetaan ATAK-lisäosien kehitystyötä varten.  
Rivi 51: Rivi 51:
## Gradle Version 8.13
## Gradle Version 8.13
## Odotetaan että helloworld-projekti tuodaan.
## Odotetaan että helloworld-projekti tuodaan.
# View > Tool Windows > Build Variants > vaihdetaan :app-moduulille Atcive Build Variant nimeltään civDebug.
# View > Tool Windows > Build Variants > vaihdetaan :app-moduulille Active Build Variant nimeltään civDebug.
# Yläpalkista app-pudotusvalikosta Edit Configurations… > Launch: Nothing > Apply > OK.
# Yläpalkista app-pudotusvalikosta Edit Configurations… > Launch: Nothing > Apply > OK.
# Asennetaan Android Studioon emlaattori, esimerkiksi Pixel 9 Pro XL > käynnistetään emulaattori > asennetaan ‘’’samasta’’’ SDK-paketista atak.apk emulaattoriin > otetaan ATAK-sovellus käyttöön (ohjeet tällä Wikikko-sivulla).  
# Asennetaan Android Studioon emulaattori, esimerkiksi Pixel 9 Pro XL > käynnistetään emulaattori > asennetaan ‘’’samasta’’’ SDK-paketista atak.apk emulaattoriin > otetaan ATAK-sovellus käyttöön (ohjeet tällä Wikikko-sivulla).  
# Run (Android Studion yläpalkin vihreä play-painike) > Hello World Tool-lisäosa pyytää lupaa asentua emulaattorin ATAK-sovellukseen.  
# Run (Android Studion yläpalkin vihreä play-painike) > Hello World Tool-lisäosa pyytää lupaa asentua emulaattorin ATAK-sovellukseen.  
## Virheilmoitus: INSTALL_FAILED_CONFLICTING_PROVIDER.
## Virheilmoitus: INSTALL_FAILED_CONFLICTING_PROVIDER.
### Vaihdetaan Android Studion vasemmasta yläkulmasta Android pudotusvalikosta Project.
### Vaihdetaan Android Studion vasemmasta yläkulmasta Android pudotusvalikosta Project.
### Avataan tiedosto app/src/main/AnroidManifest.xml > vaihdetaan rivi android:authorities="com.javacodegeeks.provider.Birthday" esimerkiksi android:authorities="com.helloworld.provider.Birthday"
### Avataan tiedosto app/src/main/AndroidManifest.xml > vaihdetaan rivi android:authorities="com.javacodegeeks.provider.Birthday" esimerkiksi android:authorities="com.helloworld.provider.Birthday"
# Avataan ATAK-valikossa Hello World Tool.
# Avataan ATAK-valikossa Hello World Tool.


Rivi 78: Rivi 78:
# grep -rl "com/atakmap/app/civ" atak_src | xargs sed -i '' 's/com\/atakmap\/app\/civ/com\/atakmap\/app\/civsdk/g'
# grep -rl "com/atakmap/app/civ" atak_src | xargs sed -i '' 's/com\/atakmap\/app\/civ/com\/atakmap\/app\/civsdk/g'
# rm -rf atak_src/build
# rm -rf atak_src/build
# apktool b atak_src -o atak_mod.apk Jos on F-Secure asennettuna, saattaa pyytää lupaa hakemistoon, mutaman kerran ponnahdusikkunoissa.  
# apktool b atak_src -o atak_mod.apk Jos on F-Secure asennettuna, saattaa pyytää lupaa hakemistoon, muutaman kerran ponnahdusikkunoissa.  
# keytool -genkey -v -keystore mykey.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 10000 Keksi salasana, anna kysytyt tiedot ja vastaa ''yes''
# keytool -genkey -v -keystore mykey.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 10000 Keksi salasana, anna kysytyt tiedot ja vastaa ''yes''
# Asennetaan apksigner
# Asennetaan apksigner
## ls ~/Library/Android/sdk/build-tools/ vastaus esim. 35.0.0 36.1.0 josta lisätään seuraavaan riiviin viimeinen numerosarja.
## ls ~/Library/Android/sdk/build-tools/ vastaus esim. 35.0.0 36.1.0 josta lisätään seuraavaan riviin viimeinen numerosarja.
### echo 'export PATH=$PATH:$HOME/Library/Android/sdk/build-tools/36.1.0' >> ~/.zshrc
### echo 'export PATH=$PATH:$HOME/Library/Android/sdk/build-tools/36.1.0' >> ~/.zshrc
## source ~/.zshrc
## source ~/.zshrc
Rivi 95: Rivi 95:
# Asennetaan SDK-paketista ATAK-sovellus emulaattoriin. Asennetaan SDK-paketista ATAK-sovellus tarvittaessa myös Android-päätelaitteeseen.  
# Asennetaan SDK-paketista ATAK-sovellus emulaattoriin. Asennetaan SDK-paketista ATAK-sovellus tarvittaessa myös Android-päätelaitteeseen.  
# Testataan, että kaikki toimii helloworld-asennuksella.
# Testataan, että kaikki toimii helloworld-asennuksella.
# Rakennetaan oma lisäosa ja testataan
# ...


* /* monirivinen kommentti */ tai // yksirivinen kommentti
=== Hakemistorakenne ===
 
* '''app'''
* hello_world_layout.xml
** build.gradle: riippuvuudet, build-asetukset ym.
** Lisäosan työkaluvalikko
** proguard-gradle.txt:
* HelloWorldDropDownReceiver.java
** /src/AndroidManifest.xml: Määrittelee lisäosan tärkeimmät asiat.
** Kiinteässä yhteydessä hello_world_layout.xml-tiedoston kanssa. Esimerkiksi poistettaessa/lisättäessä painike.
** /src/main/java/com/: Lisäosan koodi.
** /src/main/res/
*** drawable: grafiikka
*** layout: käyttöliittymä
*** values: tyylit
*** xml: konfiguraatiot
** /src/main/assets/: staattiset tiedostot
** /src/main/libs/: kirjastot


[[Luokka:SHTF]]
[[Luokka:SHTF]]

Nykyinen versio 26. joulukuuta 2025 kello 00.23

Johdanto

[muokkaa]

Tällä sivulla käsitellään lisäosan kehittämistä ja ohjelmointia. Olemassa olevista lisäosista Wikikon sivulla: ATAK.

Lisäosilla voi lisätä haluttuja toimintoja ATAKiin ja yhdistää muihin sovelluksiin. Lisäosassa hyödynnetään ATAK-sovelluksen perustoimintoja tarpeen mukaan.

Omatekoista lisäosaa varten tarvitaan:

  1. ATAK SDK-sovellus (Atak-sovelluksen kehitysversio) asennettuna Android Studio emulaattoriin tai Android-päätelaitteeseen, esim. Android-puhelimeen.
  2. Android Studio-sovellus tietokoneessa ja sovellus ATAK-perusasetuksilla
  3. ATAK SDK-paketi tak.gov-sivulta
  4. Lisäosan koodi, josta tehdään .apk -tiedosto ja asennetaan emulaattoriin tai ATAK-päätelaitteeseen. Lisäosaa voidaan kehittää ja testata Android Studioon asennetussa puhelimen emulaattorissa ja tarvittaessa/lopulta viedä se ATAK-päätelaitteeseen.

Linkkejä

[muokkaa]
https://github.com/deptofdefense/AndroidTacticalAssaultKit-CIV

Android Studio

[muokkaa]

Lisäosia kehitetään Android Studion avulla.

  • Tällä sivulla on käytetty Android Studio Otter 2 Feature Drop | 2025.2.2 (macOS).

Asennus macOS

[muokkaa]
  1. Ladataan ja asennetaan Android Studio.
  2. Myönnetään Android Studio.app:lle Full Disk Access: MacOS System Settings > Privacy & Security > Full Disk Access.

ATAK SDK

[muokkaa]

SDK:n avulla Android Studiossa tehdään ATAK-lisäosien kehittäminen. SDK-paketista löytyy ATAK-sovelluksen kehitysversio (developer build), jossa ajettavia sovelluksia ei tarvitse allekirjoittaa. Tämä ATAK-sovellus voidaan asentaa sekä Android Studion emulaattoriin tai Android-päätelaitteeseen.

  1. Ladataan ja puretaan ATAK-CIV-XXX-SDK.zip: tak.gov > Login > Products > ATAK-CIV > Developer Resources > ATAK-CIV-XXX-SDK.zip > puretaan zip ja siirretään haluttuun hakemistoon omassa tiedostojärjestelmässä. Älä siirrä purettua tiedostoa tämän jälkeen toiseen kansioon!
  2. Katso alla Helloworld-lisäosan asennus emulaattoriin, miten Android Studion perusasetukset asetetaan ATAK-lisäosien kehitystyötä varten.

ATAK SDK-sovelluksen asennus emulaattoriin

[muokkaa]
  1. Vaihtoehto 1 (12/2025)
    1. Tools > Device Manager > + > Create Virtual Device > Pixel 9 Pro XL > Next > API: API 36.1 "Baklava"; Android 16.0 > Services: Google Play Store > valitaan Google Play ARM 64 v8a System Image > Additional settings > Internal storage 8 GB > RAM 8 GB > Finish.
  2. Vaihtoehto 2 (12/2025)
    1. Tools > SDK Manager > SDK Platforms > Android 11.0 ("R") > valitse AOSP ATD ARM 64 V8A System Image > Apply > OK
    2. Tools > Device Manager > + > Create Virtual Device > Pixel 5 > Next > API: API 30 "R"; Android 11.0 > Services: Android Open Source > valitaan System Image ARM 64 v8a System Image > Additional settings > Internal storage 8 GB > RAM 8 GB > Finish.
  3. Käynnistetään emulaattori laitteen play-painikkeesta.
  4. Ladataan tak.gov-sivulta ATAK-CIV-5.5.0.7-SDK.zip tai ATAK-CIV-5.4.0.28-SDK.zip > puretaan zip-tiedosto > vedetään hiirellä tiedosto atak.apk emulaattorin ruudun päälle > avataan ATAK > hyväksytään kaikki mitä edellytetään.
  5. Jos ATAK-sovellus kaatuu, eikä pysy päällä annetaan macOS pääteohjelmassa seuraavat komennot riveittäin. Seuraavat rivit ovat erittäin tärkeitä, eikä muuta keinoa ole tähän mennessä löytynyt. Ennen näiden komentojen antamista ATAK on ensin käynnistettävä.
adb shell
mkdir -p /sdcard/atak
touch /sdcard/atak/opengl.broken
exit
  1. Käynnistetään ATAK-sovellus uudestaan.

Helloworld-lisäosan asennus emulaattoriin

[muokkaa]

Ohje 12/2025

  1. Ladataan tak.gov -sivustosta ATAK-CIV -sivulta kohdasta Developer Resources ATAK-CIV-5.5.0.7-SDK.zip > puretaan tiedosto haluttuun tietokoneen hakemistoon. Android Studioon asennuksen jälkeen sijaintia ei tule muuttaa.
  2. Lisätään plugins -niminen hakemisto SDK-hakemiston juurihakemistoon.
  3. Kopioidaan/siirretään samples-hakemistosta helloworld-hakemisto plugins-hakemistoon.
  4. Open > helloworld-hakemisto > valitaan Trust Project > odotetaan että helloworld-projekti tuodaan (eteneminen näkyy ikkunan alareunassa).
  5. Vaihdetaan ympäristö: File > Project Structure… >
    1. Android Gradle Plugin Version 8.9.0
    2. Gradle Version 8.13
    3. Odotetaan että helloworld-projekti tuodaan.
  6. View > Tool Windows > Build Variants > vaihdetaan :app-moduulille Active Build Variant nimeltään civDebug.
  7. Yläpalkista app-pudotusvalikosta Edit Configurations… > Launch: Nothing > Apply > OK.
  8. Asennetaan Android Studioon emulaattori, esimerkiksi Pixel 9 Pro XL > käynnistetään emulaattori > asennetaan ‘’’samasta’’’ SDK-paketista atak.apk emulaattoriin > otetaan ATAK-sovellus käyttöön (ohjeet tällä Wikikko-sivulla).
  9. Run (Android Studion yläpalkin vihreä play-painike) > Hello World Tool-lisäosa pyytää lupaa asentua emulaattorin ATAK-sovellukseen.
    1. Virheilmoitus: INSTALL_FAILED_CONFLICTING_PROVIDER.
      1. Vaihdetaan Android Studion vasemmasta yläkulmasta Android pudotusvalikosta Project.
      2. Avataan tiedosto app/src/main/AndroidManifest.xml > vaihdetaan rivi android:authorities="com.javacodegeeks.provider.Birthday" esimerkiksi android:authorities="com.helloworld.provider.Birthday"
  10. Avataan ATAK-valikossa Hello World Tool.

ATAK SDK-sovelluksen asennus Android-päätelaitteeseen

[muokkaa]
HUOM! itse allekirjoitettuja (self-signed) lisäosia ei voi käyttää Play Storesta asennetussa ATAK-CIV-sovelluksessa, tämän takia on asennettava SDK-paketista atak.apk päätelaitteeseen. 
  • Tällöin tulee asennettaessa virheilmoitus: The signature for the plugin is INVALID. ja lisäosa ei asennu.
  1. Ladataan tak.gov -sivustosta ATAK-CIV -sivulta kohdasta Developer Resources ATAK-CIV-XXX-SDK.zip > puretaan tiedosto haluttuun tietokoneen hakemistoon.
  2. ATAK SDK-sovellus on atak.apk-tiedosto SDK-juurihakemistossa. Lähetä atak.apk-tiedosto sähköpostilla, siirrä Google Driven/OneDriven avulla päätelaitteeseen tai käytä Android Studion adb-komentoa pääteohjelmassa.

Rinnakkaisasennus

[muokkaa]

Tavoitteena käyttää Play Storesta asennettua ATAK-CIV -sovellusta ja tak.gov-sivuilta ladattua ATAK SDK-sovellusta samanaikaisesti samassa Android-päätelaitteessa.

  • Shelter. Ei onnistunut asentaa F-Droid -> Shelter -sovelluksen kautta asentamalla työprofiili. ATAK-CIV-5.6.0.5-SDK.zip sisältyvä atak.apk ei asentunut Shelterin työprofiiliin. Play Storesta asennettu ATAK-CIV asentui työprofiiliin. Vaihtoehtona olisi poistaa varsinainen henkilökohtaisessa profiilissa oleva Play Storen ATAK ja asentaa siihen profiiliin SDK atak.apk. (12/2025)
  • ATAK-CIV-5.6.0.5-SDK.zip sisältyvä atak.apk -paketin nimen muuttaminen. Ei onnistunut seuraavalla tavoin (macOS). Ilmeisesti syynä "kovakoodatut" osat, joita ei voi muuttaa ja jotka osuvat päällekkäin Play Store ATAKin kanssa. (12/2025)
  1. brew install apktool
    1. apktool —version
    2. cd (vedetään tähän hakemisto Finderista, joka sisältää atak.apk -tiedoston ja painetaan enter. Odotetaan niin kauan, että menee läpi. Jos on F-Secure asennettuna, saattaa pyytää lupaa hakemistoon muutaman kerran heti alussa ponnahdusikkunoissa.
  2. apktool d atak.apk -o atak_src
  3. muutetaan tiedostossa atak_src/AndroidManifest.xml rivi muotoon package="com.atakmap.app.civsdk”
  4. grep -rl "com/atakmap/app/civ" atak_src | xargs sed -i 's/com\/atakmap\/app\/civ/com\/atakmap\/app\/civsdk/g'
  5. rm -rf atak_src/build
  6. apktool b atak_src -o atak_mod.apk Jos on F-Secure asennettuna, saattaa pyytää lupaa hakemistoon, muutaman kerran ponnahdusikkunoissa.
  7. keytool -genkey -v -keystore mykey.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 10000 Keksi salasana, anna kysytyt tiedot ja vastaa yes
  8. Asennetaan apksigner
    1. ls ~/Library/Android/sdk/build-tools/ vastaus esim. 35.0.0 36.1.0 josta lisätään seuraavaan riviin viimeinen numerosarja.
      1. echo 'export PATH=$PATH:$HOME/Library/Android/sdk/build-tools/36.1.0' >> ~/.zshrc
    2. source ~/.zshrc
    3. apksigner --version
  9. apksigner sign --ks mykey.keystore atak_mod.apk Annetaan edellä keytoolissa asetettu mykey:n salasana.

Oman lisäosan kehittäminen

[muokkaa]
  • Tehdään seuraavat valmistelut:
  1. Asennetaan Android Studio.
  2. Asennetaan Android Studioon Android-päätelaitteen emulaattori.
  3. Asetetaan ATAK-lisäosan kehitysperusasetukset (ks. helloworld-ohje).
  4. Ladataan tak.gov-sivustosta ATAK SDK-paketti
  5. Asennetaan SDK-paketista ATAK-sovellus emulaattoriin. Asennetaan SDK-paketista ATAK-sovellus tarvittaessa myös Android-päätelaitteeseen.
  6. Testataan, että kaikki toimii helloworld-asennuksella.
  7. Rakennetaan oma lisäosa ja testataan
  8. ...

Hakemistorakenne

[muokkaa]
  • app
    • build.gradle: riippuvuudet, build-asetukset ym.
    • proguard-gradle.txt:
    • /src/AndroidManifest.xml: Määrittelee lisäosan tärkeimmät asiat.
    • /src/main/java/com/: Lisäosan koodi.
    • /src/main/res/
      • drawable: grafiikka
      • layout: käyttöliittymä
      • values: tyylit
      • xml: konfiguraatiot
    • /src/main/assets/: staattiset tiedostot
    • /src/main/libs/: kirjastot