Hjälp med editering av APK

Diskussion i 'Frågor, support och diskussion' startad av JesperKarlsson95, 25 feb 2023.

  1. JesperKarlsson95

    JesperKarlsson95 Baby Droid Medlem

    Blev medlem:
    2 aug 2021
    Inlägg:
    20
    Mottagna gillanden:
    1
    Hej alla kunniga kodare där ute!
    Jag undrar ifall jag skulle kunna få lite hjälp med ett område som tyvärr inte ligger mig så varmt om hjärtat - nämligen att skriva kod och redigera applikationer för Android.

    Det gäller denna applikation: https://play.google.com/store/apps/details?id=com.arandompackage.flatconswhite&hl=en&gl=US

    Närmare bestämt skulle jag vilja editera denna så att appen enbart innehåller de ikoner som jag har valt ut.

    Är det någon här som vet hur man bygger och editerar APK's, och vill endera hjälpa mig eller ge tips på hur jag lär mig att göra detta? :)
     
  2. Heleg

    Heleg Professional Droid Medlem

    Blev medlem:
    5 feb 2016
    Inlägg:
    2 976
    Mottagna gillanden:
    2 099
    Varför inte kolla in en video som beskriver hur man gör som denna?
     
  3. JesperKarlsson95

    JesperKarlsson95 Baby Droid Medlem

    Blev medlem:
    2 aug 2021
    Inlägg:
    20
    Mottagna gillanden:
    1
    Tack för tipset!
    Kikade på den, och en mängd andra tutorials. Tyvärr så har jag oavsett sätt jag provat kommit till en återvändsgränd på ett eller annat sätt. I det här fallet stötte jag på problem med att vissa appar verkar vara skyddade från att byta ikon på launchern i APK-filen, och därför blivit tilldelad en "stock-android logo" enligt bifogad bild?
     

    Bifogade filer:

  4. EliasElias

    EliasElias Infant Droid Medlem

    Blev medlem:
    28 apr 2022
    Inlägg:
    12
    Mottagna gillanden:
    4
    Jag är inte helt säker på att detta är svaret su söker men såhär gjorde jag för att ta bort bilder ur ash. Jag extraherade apk-filerna från telefonen, dekompilera base.apk och redigera "res/values/public.xml" genom bort de drawables jag ville testa att ta inte ha. Sedan kompilerade jag igen med apktool, signerade med apksigner (från android studio), raderade appen från telefonen och installerade den nysignerade apk:n. Alltså typ:
    adb shell pm path com.arandompackage.flatconswhite # notera var filen är
    adb sell pm pull FILVÄG
    apktool d base.apk
    # öppna base/res/values/public.xml och redigera som du vill
    cd base
    apktool -f b
    # skapa en keystore
    # signera med apksign
    # avinstallera från telefonen
    adb install base/signed-base.apk

    I mitt fall valde jag att generera en keystore i ~/ enligt
    "keytool -genkey -v -keystore ~/my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000"
    (detta har jag kopierat rakt av från How to Sign an Already Compiled Apk). Sedan koperade jag scriptet från och scripet från svar 3 här: Targeting R+ (version 30 and above) requires the resources.arsc of installed APKs to be stored uncompressed and aligned on a 4-byte boundary till filen sign_script.sh och kunde på så vis signera genom ./sign_script.sh dist/base.sh vilket var smidigt.

    En sak som är värd att notera är att jag sket helt och hållet i apk-filerna förutom base-filen, dvs split_config.en.apk, split_config.sv.apk och split_config.xxhdpi.apk som också ingår när man installerar från play. Jag hade inga problem med att ändra ikonerna i nova launcher trots det men vill man göra det ordentligt ska man nog signera dem på nytt och installera alla på en gång med adb install-multiple.

    Sedan finns det säkert enklare sätt men detta var vad jag kom på och vad än värre är, det verkar inte som om polar flow finns i ash? Jag bifogar dock en bild på hur det blev för mig med stock polar flow, stock firefox beta men nova settings och play store från ash.

    Länk till apksigner: apksigner  |  Android Developers
    Länk till apktool: Apktool - A tool for reverse engineering 3rd party, closed, binary Android apps.
     

    Bifogade filer:

  5. JesperKarlsson95

    JesperKarlsson95 Baby Droid Medlem

    Blev medlem:
    2 aug 2021
    Inlägg:
    20
    Mottagna gillanden:
    1
    Hej Elias!
    Tack för utförligt svar, detta kanske definitivt är vad jag är ute efter?

    Det verkar vara aningen överkurs för mig, tror du att det är lätt att lära sig om jag läser på lite, eller är detta något som du exempelvis skulle snickra ihop åt mig på 5 minuter?

    Frågar eftersom jag som sagt inte alls har så bra insikt i detta ämne! :)
     
  6. EliasElias

    EliasElias Infant Droid Medlem

    Blev medlem:
    28 apr 2022
    Inlägg:
    12
    Mottagna gillanden:
    4
    Det hade gått att göra, men jag vet inte vilken licens ash använder och vill därför inte redistribuera en modifierad version av deras apk. De har använt detta bibliotek: GitHub - javiersantos/PiracyChecker: An Android library that prevents your app from being pirated / cracked using Google Play Licensing (LVL), APK signature protection and more. API 14+ required., vilket tyder på att de inte är jättesugna på att det sprids inofficiella versioner av deras app. Sedan skulle du inte fått några uppdateringar (inklusive säkerhetsuppdateringar) heller.

    Får jag fråga varför du vill modifiera just den appen? Om du vill göra ett eget ikonpaket kanske det vore ett alternativ att utgå ifrån en app med öppen källkod istället.
     
  7. JesperKarlsson95

    JesperKarlsson95 Baby Droid Medlem

    Blev medlem:
    2 aug 2021
    Inlägg:
    20
    Mottagna gillanden:
    1
    Förstår! Absolut, en befogad fråga från din sida!

    Oneplus 11 och dess medföljande launcher tillåter inte att man bläddrar i listan över ikoner, från ikonpaket, eftersom listan med ikoner krashar när man börjar scrolla. Riktigt surt problem, som medför att jag enbart ser ett väldigt begränsat fåtal ikoner att välja emellan, nämligen de som ligger i de översta raderna.

    Jag vill heller inte byta till Nova eller Lawnchair, eftersom jag överlag tycker om Oneplus launcher.
    Min gissning är därför att om jag bygger ett "eget" icon pack med enbart de ikoner som jag avser att använda, så behöver jag inte scrolla för att ha möjlighet att välja de ikoner som jag vill ha till mina appar :)
     
  8. EliasElias

    EliasElias Infant Droid Medlem

    Blev medlem:
    28 apr 2022
    Inlägg:
    12
    Mottagna gillanden:
    4
    Ok, jag var nog litet otydlig med min fråga. Jag är helt med på att du vill bygga ett eget ikonpaket. Det jag undrar är varför du vill utgå från just ash från "arandompackage". För att modifiera själv känns det enklare att utgå ifrån något där källkoden är tillgänglig från början för att slippa behöva dekompilera.
     
  9. JesperKarlsson95

    JesperKarlsson95 Baby Droid Medlem

    Blev medlem:
    2 aug 2021
    Inlägg:
    20
    Mottagna gillanden:
    1
    Aaah, haha sorry, var nog mer jag som missuppfattade frågan!

    Nu vet jag ju inte vad jag som användare har för rättigheter gentemot företaget bakom Ash. Men jag har lärt mig hur jag plockar ut själva PNG-bilderna från APK-appen ash, så ikonerna har jag ju faktiskt redan tillgång till! :)

    Det jag behöver nu är väl en "ny form" av app där jag kan skjuta in de ikoner som jag sedan vill använda :)
     
  10. poipen

    poipen Professional Droid Medlem

    Blev medlem:
    20 apr 2010
    Inlägg:
    2 265
    Mottagna gillanden:
    1 246

    MINA ENHETER

    Kan man inte bara välja en specifik bild till en specifik app med den lunchern?
    tänkte att man kan ha alla ikoner i en mapp istället .
     
  11. JesperKarlsson95

    JesperKarlsson95 Baby Droid Medlem

    Blev medlem:
    2 aug 2021
    Inlägg:
    20
    Mottagna gillanden:
    1
    Tyvärr, om jag håller in fingret på en ikon så kan jag där välja att jag vill byta ikon. Dock så kommer man enbart till en lista med mina icon packs, utan möjlighet att söka lokalt i telefonen, eller söka med fritext på ikoner.
     
    poipen gillar detta.
  12. JesperKarlsson95

    JesperKarlsson95 Baby Droid Medlem

    Blev medlem:
    2 aug 2021
    Inlägg:
    20
    Mottagna gillanden:
    1
    En faktiskt video på mitt problem kanske också kan bidra lite!



     
  13. EliasElias

    EliasElias Infant Droid Medlem

    Blev medlem:
    28 apr 2022
    Inlägg:
    12
    Mottagna gillanden:
    4
    Ok, då förstår jag. Då borde Delta icons fugnera. Här är instruktioner för hur man ändrar ikonerna i appen: android/CONTRIBUTING.md at master · Delta-Icons/android

    Jag testade att klona repot, öppna det i android studio och lägga google-play ikonen från ash light i app/src/main/res/drawable-nodpi. Sedan tog jag bort alla andra appar från
    • app/src/main/assets/drawable.xml,
    • app/src/main/res/xml/drawable.xml,
    • app/src/main/assets/appfilter.xml och
    • app/src/main/res/xml/appfilter.xml
    Man behöver nog inte redigera alla dessa men jag ändrade alla föra att slippa felsöka. Sedan kompilerade jag apk:n i android studio ("build" -> "make project") och sedan installerade jag app/build/outputs/apk/foss/debug/android-v177007-foss-debug.apk på telefoenen. Då fick jag ash light-ikon enbart på play store.

    Jag vet inte om delta är kompatibelt med oneplus launcher, men om det är det borde du med denna metod kunna kompilera en apk med precis vilka ikoner du vill (när du vill) utan att använda terminalen och det borde inte behövas någon programvara utöver android studio.
     

    Bifogade filer:

  14. JesperKarlsson95

    JesperKarlsson95 Baby Droid Medlem

    Blev medlem:
    2 aug 2021
    Inlägg:
    20
    Mottagna gillanden:
    1
    Tack! Detta ska jag undersöka när jag kommer hem!
     
  15. JesperKarlsson95

    JesperKarlsson95 Baby Droid Medlem

    Blev medlem:
    2 aug 2021
    Inlägg:
    20
    Mottagna gillanden:
    1
    Har läst om och om igen, samt undersökt länken på github, är inte säker på att jag förstår! Men jag ger det ett försök här:

    Jag har laddat ned APK'n till Delta icons och lagt in appen i Android Studio. Är jag rätt så långt?
     

    Bifogade filer:

  16. EliasElias

    EliasElias Infant Droid Medlem

    Blev medlem:
    28 apr 2022
    Inlägg:
    12
    Mottagna gillanden:
    4
    Det är möjligt att det går att göra på så vis också, men det jag föreslår är att du inte ska modifiera någon apk utan bygga en från källkod. Då är det hela repot du ska ladda ned, inte apk-filen ("code" -> "download zip" på github). Om du vill kan du testa att bygga appen innan du gör någon modifiering för att se att din byggkedja fungerar bra. Då kan du dessutom testa huruvida Delta är kompatibelt med din launcher över huvud taget.
     
  17. JesperKarlsson95

    JesperKarlsson95 Baby Droid Medlem

    Blev medlem:
    2 aug 2021
    Inlägg:
    20
    Mottagna gillanden:
    1
    Toppen!
    Jag har nu laddat ned source mappen, lagt in den i Android Studio, samt letat mig till sökvägen som du beskrev, och tagit bort nästan alla ikoner.

    Nästa steg gissar jag att jag kan prova att bygga ihop detta till en APK igen??

    Hittar dock ingen "make project" under fliken "Build" ?

    upload_2023-2-28_12-16-49.png

    upload_2023-2-28_12-18-28.png
     
  18. EliasElias

    EliasElias Infant Droid Medlem

    Blev medlem:
    28 apr 2022
    Inlägg:
    12
    Mottagna gillanden:
    4
    Av någon anledning har android-1.7.6 inte lagts till som konfiguration, vilket gjordes automatiskt för mig. Make module android-1.7.6 borde dock resultera i precis samma sak. Jag tror det kan vara så att projektet känns igen om du har build.gradle öppen i projektmappen när du trycker build.

    Jag är inte helt säker på vad "igen" syftar på här?
     
  19. JesperKarlsson95

    JesperKarlsson95 Baby Droid Medlem

    Blev medlem:
    2 aug 2021
    Inlägg:
    20
    Mottagna gillanden:
    1
    Skrev fel, menade inte ordet "igen", syftade på att nästa steg gissar jag är att skapa en APK av mappen som jag modifierat i Android Studio :)

    Ska undersöka detta!
     
  20. JesperKarlsson95

    JesperKarlsson95 Baby Droid Medlem

    Blev medlem:
    2 aug 2021
    Inlägg:
    20
    Mottagna gillanden:
    1
    Update:
    Jag lyckades skapa en APK från mappen i Android Studio, samt ordna så att jag endast hade EN ikon i appen. Dessvärre stötte jag på ett nytt problem.

    Efter att jag lyckades installera appen på min telefon så ville jag prova att byta ikon på i detta fallet "postnord", då visar det sig att launchern hittar ikonpaketet men ingen ikon i listan. Då mindes jag en tråd som jag stötte på för någon dag sedan, där det stod att någon hade haft liknande problem som mitt ursprungliga problem - och att det beror på att launchern bara kan läsa in "stock ikoner", alltså ikoner som motsvarar de system/appar som följer med telefonen.

    Hur låter detta för dig?