Utkwiłem i to chyba na dobre. Hobbystycznie modyfikuje aplikację mobilną. Modyfikacja miała polegać na:
Dodaniu do menu rozwijanego nowych pozycji i wyedytowaniu starych (udało się po edycji pliku arrays.xml)
pozycje z menu odnoszą się do danych kontaktowych, czyli po wybraniu z menu opcji kontakt wyswietla sie lista osób, i tę liste wyedytowałem w xml, nastepnie po kliknięciu w osobe z listy aplikacja wyświetla dane tej osoby jak imię nazwisko numery telefonów i mail. Udało sie to pozamieniać w pliku ActivitiContact.smali i działa. Nie udało mi się dopisać do pliku ActivitiContact.smali danych o nowych kontaktach.
Aplikację apk zdekompilowałem pozmieniałem co potrafiłem, skompilowałem i pdpisałem - więc tutaj problemów nie ma. Problem jest w kodzie pliku smali do którego odnosi się lista kontaktów z manu. Może jest jakieś narzędzie wizualne, które pomoże w dopisaniu kodu lub jego analizie?
---------- Post dołączono o 23:50 ---------- Poprzedni post napisano o 16:40 ----------
Na wstępie przepraszam za długi listing i może nie tak powinien być tu pokazany. Proszę o podpowiedź jakąś mądrą głowę. 🙂
.class public Lpl/myname/activities/ContactActivity;
.super Lpl/myname/BaseMenuActivity;
.source "ContactActivity.java"
# interfaces
.implements Landroid/widget/AdapterView$OnItemSelectedListener;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Lpl/myname/BaseMenuActivity;",
"Landroid/widget/AdapterView$OnItemSelectedListener;"
}
.end annotation
# instance fields
.field contactNames:[Ljava/lang/String;
.field contentEt:Landroid/widget/EditText;
.field customContactLayout:Landroid/widget/LinearLayout;
.field customMailToContact:Landroid/widget/TextView;
.field customMobileToContact:Landroid/widget/TextView;
.field customMobileToContactSecond:Landroid/widget/TextView;
.field customPersonToContact:Landroid/widget/TextView;
.field emailText:Landroid/widget/TextView;
.field loggedUsername:Ljava/lang/String;
.field mails:[Ljava/lang/String;
.field mapText:Landroid/widget/TextView;
.field mobile:[Ljava/lang/String;
.field mobile2:[Ljava/lang/String;
.field nameEt:Landroid/widget/EditText;
.field sendForm:Landroid/widget/Button;
.field sendFormClickListener:Landroid/view/View$OnClickListener;
.field senderEmailEt:Landroid/widget/EditText;
# direct methods
.method public constructor <init>()V
.locals 7
.prologue
const/4 v6, 0x4
const/4 v5, 0x3
const/4 v4, 0x2
const/4 v3, 0x1
const/4 v2, 0x0
.line 26
invoke-direct {p0}, Lpl/myname/BaseMenuActivity;-><init>()V
.line 28
const-string v0, "Nie zalogowany"
iput-object v0, p0, Lpl/myname/activities/ContactActivity;->loggedUsername:Ljava/lang/String;
.line 39
const/4 v0, 0x5
new-array v0, v0, [Ljava/lang/String;
const-string v1, "wojtek@myname.pl"
aput-object v1, v0, v2
.line 40
const-string v1, "magda@myname.pl"
aput-object v1, v0, v3
const-string v1, "bartek@myname.pl"
aput-object v1, v0, v4
.line 41
const-string v1, "arek@myname.pl"
aput-object v1, v0, v5
const-string v1, "marek@myname.pl"
aput-object v1, v0, v6
iput-object v0, p0, Lpl/myname/activities/ContactActivity;->mails:[Ljava/lang/String;
.line 42
const/4 v0, 0x5
new-array v0, v0, [Ljava/lang/String;
const-string v1, "+48 502 111 111"
aput-object v1, v0, v2
const-string v1, "(58) 612 11 01"
aput-object v1, v0, v3
.line 43
const-string v1, "(58) 612 11 02"
aput-object v1, v0, v4
const-string v1, "(58) 633 11 03"
aput-object v1, v0, v5
const-string v1, "(58) 612 13 04"
aput-object v1, v0, v6
iput-object v0, p0, Lpl/myname/activities/ContactActivity;->mobile:[Ljava/lang/String;
.line 44
const/4 v0, 0x5
new-array v0, v0, [Ljava/lang/String;
const-string v1, ""
aput-object v1, v0, v2
const-string v1, "+48 510 333 833"
aput-object v1, v0, v3
.line 45
const-string v1, "+48 790 333 733"
aput-object v1, v0, v4
const-string v1, "+48 531 333 735"
aput-object v1, v0, v5
const-string v1, ""
aput-object v1, v0, v6
iput-object v0, p0, Lpl/myname/activities/ContactActivity;->mobile2:[Ljava/lang/String;
.line 189
new-instance v0, Lpl/myname/activities/ContactActivity$1;
invoke-direct {v0, p0}, Lpl/myname/activities/ContactActivity$1;-><init>(Lpl/myname/activities/ContactActivity;)V
iput-object v0, p0, Lpl/myname/activities/ContactActivity;->sendFormClickListener:Landroid/view/View$OnClickListener;
.line 26
return-void
.end method
.method static synthetic access$0(Lpl/myname/activities/ContactActivity;)Z
.locals 1
.parameter
.prologue
.line 136
invoke-direct {p0}, Lpl/myname/activities/ContactActivity;->checkContactForm()Z
move-result v0
return v0
.end method
.method static synthetic access$1(Lpl/myname/activities/ContactActivity;Ljava/lang/Class;)V
.locals 0
.parameter
.parameter
.prologue
.line 1
invoke-virtual {p0, p1}, Lpl/myname/activities/ContactActivity;->goToActivity(Ljava/lang/Class;)V
return-void
.end method
.method private checkContactForm()Z
.locals 2
.prologue
const/4 v0, 0x0
.line 137
invoke-direct {p0}, Lpl/myname/activities/ContactActivity;->checkName()Z
move-result v1
if-nez v1, :cond_0
.line 140
const v1, 0x7f050022
invoke-direct {p0, v1}, Lpl/myname/activities/ContactActivity;->toastMsg(I)V
.line 141
iget-object v1, p0, Lpl/myname/activities/ContactActivity;->nameEt:Landroid/widget/EditText;
invoke-virtual {v1}, Landroid/widget/EditText;->requestFocus()Z
.line 154
:goto_0
return v0
.line 144
:cond_0
invoke-direct {p0}, Lpl/myname/activities/ContactActivity;->checkEmail()Z
move-result v1
if-nez v1, :cond_1
.line 145
const v1, 0x7f050023
invoke-direct {p0, v1}, Lpl/myname/activities/ContactActivity;->toastMsg(I)V
.line 146
iget-object v1, p0, Lpl/myname/activities/ContactActivity;->senderEmailEt:Landroid/widget/EditText;
invoke-virtual {v1}, Landroid/widget/EditText;->requestFocus()Z
goto :goto_0
.line 149
:cond_1
invoke-direct {p0}, Lpl/myname/activities/ContactActivity;->checkContent()Z
move-result v1
if-nez v1, :cond_2
.line 150
const v1, 0x7f050024
invoke-direct {p0, v1}, Lpl/myname/activities/ContactActivity;->toastMsg(I)V
.line 151
iget-object v1, p0, Lpl/myname/activities/ContactActivity;->contentEt:Landroid/widget/EditText;
invoke-virtual {v1}, Landroid/widget/EditText;->requestFocus()Z
goto :goto_0
.line 154
:cond_2
const/4 v0, 0x1
goto :goto_0
.end method
.method private checkContent()Z
.locals 2
.prologue
.line 177
iget-object v1, p0, Lpl/myname/activities/ContactActivity;->contentEt:Landroid/widget/EditText;
invoke-virtual {v1}, Landroid/widget/EditText;->getText()Landroid/text/Editable;
move-result-object v1
invoke-interface {v1}, Landroid/text/Editable;->toString()Ljava/lang/String;
move-result-object v0
.line 178
.local v0, content:Ljava/lang/String;
if-eqz v0, :cond_0
.line 179
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v1
if-lez v1, :cond_0
.line 180
const/4 v1, 0x1
.line 182
:goto_0
return v1
:cond_0
const/4 v1, 0x0
goto :goto_0
.end method
.method private checkEmail()Z
.locals 3
.prologue
.line 167
iget-object v2, p0, Lpl/myname/activities/ContactActivity;->senderEmailEt:Landroid/widget/EditText;
invoke-virtual {v2}, Landroid/widget/EditText;->getText()Landroid/text/Editable;
move-result-object v2
invoke-interface {v2}, Landroid/text/Editable;->toString()Ljava/lang/String;
move-result-object v0
.line 168
.local v0, mail:Ljava/lang/String;
if-eqz v0, :cond_0
.line 169
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v2
if-lez v2, :cond_0
.line 170
new-instance v1, Lpl/myname/data/EmailValidator;
invoke-direct {v1}, Lpl/myname/data/EmailValidator;-><init>()V
.line 171
.local v1, validator:Lpl/myname/data/EmailValidator;
invoke-virtual {v1, v0}, Lpl/myname/data/EmailValidator;->validate(Ljava/lang/String;)Z
move-result v2
.line 173
.end local v1 #validator:Lpl/myname/data/EmailValidator;
:goto_0
return v2
:cond_0
const/4 v2, 0x0
goto :goto_0
.end method
.method private checkName()Z
.locals 2
.prologue
.line 158
iget-object v1, p0, Lpl/myname/activities/ContactActivity;->nameEt:Landroid/widget/EditText;
invoke-virtual {v1}, Landroid/widget/EditText;->getText()Landroid/text/Editable;
move-result-object v1
invoke-interface {v1}, Landroid/text/Editable;->toString()Ljava/lang/String;
move-result-object v0
.line 159
.local v0, name:Ljava/lang/String;
if-eqz v0, :cond_0
.line 160
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v1
if-lez v1, :cond_0
.line 161
const/4 v1, 0x1
.line 163
:goto_0
return v1
:cond_0
const/4 v1, 0x0
goto :goto_0
.end method
.method private setupView()V
.locals 8
.prologue
const/high16 v7, 0x7f04
.line 63
const v5, 0x7f080013
invoke-virtual {p0, v5}, Lpl/myname/activities/ContactActivity;->findViewById(I)Landroid/view/View;
move-result-object v5
check-cast v5, Landroid/widget/TextView;
iput-object v5, p0, Lpl/myname/activities/ContactActivity;->mapText:Landroid/widget/TextView;
.line 64
const v5, 0x7f080014
invoke-virtual {p0, v5}, Lpl/myname/activities/ContactActivity;->findViewById(I)Landroid/view/View;
move-result-object v5
check-cast v5, Landroid/widget/TextView;
iput-object v5, p0, Lpl/myname/activities/ContactActivity;->emailText:Landroid/widget/TextView;
.line 66
const v5, 0x7f08000f
invoke-virtual {p0, v5}, Lpl/myname/activities/ContactActivity;->findViewById(I)Landroid/view/View;
move-result-object v5
check-cast v5, Landroid/widget/EditText;
iput-object v5, p0, Lpl/myname/activities/ContactActivity;->nameEt:Landroid/widget/EditText;
.line 67
const v5, 0x7f080010
invoke-virtual {p0, v5}, Lpl/myname/activities/ContactActivity;->findViewById(I)Landroid/view/View;
move-result-object v5
check-cast v5, Landroid/widget/EditText;
iput-object v5, p0, Lpl/myname/activities/ContactActivity;->senderEmailEt:Landroid/widget/EditText;
.line 68
const v5, 0x7f080011
invoke-virtual {p0, v5}, Lpl/myname/activities/ContactActivity;->findViewById(I)Landroid/view/View;
move-result-object v5
check-cast v5, Landroid/widget/EditText;
iput-object v5, p0, Lpl/myname/activities/ContactActivity;->contentEt:Landroid/widget/EditText;
.line 70
const v5, 0x7f08000a
invoke-virtual {p0, v5}, Lpl/myname/activities/ContactActivity;->findViewById(I)Landroid/view/View;
move-result-object v5
check-cast v5, Landroid/widget/TextView;
iput-object v5, p0, Lpl/myname/activities/ContactActivity;->customPersonToContact:Landroid/widget/TextView;
.line 71
const v5, 0x7f08000b
invoke-virtual {p0, v5}, Lpl/myname/activities/ContactActivity;->findViewById(I)Landroid/view/View;
move-result-object v5
check-cast v5, Landroid/widget/TextView;
iput-object v5, p0, Lpl/myname/activities/ContactActivity;->customMobileToContact:Landroid/widget/TextView;
.line 72
const v5, 0x7f08000e
invoke-virtual {p0, v5}, Lpl/myname/activities/ContactActivity;->findViewById(I)Landroid/view/View;
move-result-object v5
check-cast v5, Landroid/widget/TextView;
iput-object v5, p0, Lpl/myname/activities/ContactActivity;->customMailToContact:Landroid/widget/TextView;
.line 74
const v5, 0x7f08000d
invoke-virtual {p0, v5}, Lpl/myname/activities/ContactActivity;->findViewById(I)Landroid/view/View;
move-result-object v5
check-cast v5, Landroid/widget/TextView;
iput-object v5, p0, Lpl/myname/activities/ContactActivity;->customMobileToContactSecond:Landroid/widget/TextView;
.line 75
const v5, 0x7f08000c
invoke-virtual {p0, v5}, Lpl/myname/activities/ContactActivity;->findViewById(I)Landroid/view/View;
move-result-object v5
check-cast v5, Landroid/widget/LinearLayout;
iput-object v5, p0, Lpl/myname/activities/ContactActivity;->customContactLayout:Landroid/widget/LinearLayout;
.line 77
const v5, 0x7f080012
invoke-virtual {p0, v5}, Lpl/myname/activities/ContactActivity;->findViewById(I)Landroid/view/View;
move-result-object v5
check-cast v5, Landroid/widget/Button;
iput-object v5, p0, Lpl/myname/activities/ContactActivity;->sendForm:Landroid/widget/Button;
.line 78
iget-object v5, p0, Lpl/myname/activities/ContactActivity;->sendForm:Landroid/widget/Button;
iget-object v6, p0, Lpl/myname/activities/ContactActivity;->sendFormClickListener:Landroid/view/View$OnClickListener;
invoke-virtual {v5, v6}, Landroid/widget/Button;->setOnClickListener(Landroid/view/View$OnClickListener;)V
.line 80
iget-object v5, p0, Lpl/myname/activities/ContactActivity;->mapText:Landroid/widget/TextView;
new-instance v6, Lpl/myname/activities/ContactActivity$2;
invoke-direct {v6, p0}, Lpl/myname/activities/ContactActivity$2;-><init>(Lpl/myname/activities/ContactActivity;)V
invoke-virtual {v5, v6}, Landroid/widget/TextView;->setOnClickListener(Landroid/view/View$OnClickListener;)V
.line 87
iget-object v5, p0, Lpl/myname/activities/ContactActivity;->emailText:Landroid/widget/TextView;
new-instance v6, Lpl/myname/actionlisteners/SendMailOnClickListener;
invoke-direct {v6}, Lpl/myname/actionlisteners/SendMailOnClickListener;-><init>()V
invoke-virtual {v5, v6}, Landroid/widget/TextView;->setOnClickListener(Landroid/view/View$OnClickListener;)V
.line 89
const v5, 0x7f080009
invoke-virtual {p0, v5}, Lpl/myname/activities/ContactActivity;->findViewById(I)Landroid/view/View;
move-result-object v3
check-cast v3, Landroid/widget/Spinner;
.line 92
.local v3, spinner:Landroid/widget/Spinner;
const v5, 0x1090008
.line 90
invoke-static {p0, v7, v5}, Landroid/widget/ArrayAdapter;->createFromResource(Landroid/content/Context;II)Landroid/widget/ArrayAdapter;
move-result-object v0
.line 93
.local v0, adapter:Landroid/widget/ArrayAdapter;,"Landroid/widget/ArrayAdapter<Ljava/lang/CharSequence;>;"
const v5, 0x1090009
invoke-virtual {v0, v5}, Landroid/widget/ArrayAdapter;->setDropDownViewResource(I)V
.line 94
invoke-virtual {v3, v0}, Landroid/widget/Spinner;->setAdapter(Landroid/widget/SpinnerAdapter;)V
.line 95
invoke-virtual {v3, p0}, Landroid/widget/Spinner;->setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V
.line 97
invoke-virtual {p0}, Lpl/myname/activities/ContactActivity;->getResources()Landroid/content/res/Resources;
move-result-object v2
.line 98
.local v2, resources:Landroid/content/res/Resources;
invoke-virtual {v2, v7}, Landroid/content/res/Resources;->getStringArray(I)[Ljava/lang/String;
move-result-object v5
iput-object v5, p0, Lpl/myname/activities/ContactActivity;->contactNames:[Ljava/lang/String;
.line 101
:try_start_0
invoke-static {}, Lpl/myname/data/StorageManager;->getInstance()Lpl/myname/data/StorageManager;
move-result-object v4
.line 102
.local v4, storage:Lpl/myname/data/StorageManager;
invoke-virtual {v4}, Lpl/myname/data/StorageManager;->getLoginStatus()Z
move-result v5
if-eqz v5, :cond_0
.line 103
iget-object v5, p0, Lpl/myname/activities/ContactActivity;->senderEmailEt:Landroid/widget/EditText;
invoke-virtual {v4}, Lpl/myname/data/StorageManager;->getUserEmail()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Landroid/widget/EditText;->setText(Ljava/lang/CharSequence;)V
.line 104
iget-object v5, p0, Lpl/myname/activities/ContactActivity;->nameEt:Landroid/widget/EditText;
invoke-virtual {v4}, Lpl/myname/data/StorageManager;->getUserName()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Landroid/widget/EditText;->setText(Ljava/lang/CharSequence;)V
.line 105
invoke-virtual {v4}, Lpl/myname/data/StorageManager;->getLoginPassword()Lpl/myname/data/jsonobjects/LoginPassword;
move-result-object v5
invoke-virtual {v5}, Lpl/myname/data/jsonobjects/LoginPassword;->getLogin()Ljava/lang/String;
move-result-object v5
iput-object v5, p0, Lpl/myname/activities/ContactActivity;->loggedUsername:Ljava/lang/String;
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
.line 110
.end local v4 #storage:Lpl/myname/data/StorageManager;
:cond_0
:goto_0
return-void
.line 107
:catch_0
move-exception v1
.line 108
.local v1, e:Ljava/lang/Exception;
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_0
.end method
.method private toastMsg(I)V
.locals 2
.parameter "msg"
.prologue
.line 186
invoke-virtual {p0}, Lpl/myname/activities/ContactActivity;->getApplicationContext()Landroid/content/Context;
move-result-object v0
const/4 v1, 0x0
invoke-static {v0, p1, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast;
move-result-object v0
invoke-virtual {v0}, Landroid/widget/Toast;->show()V
.line 187
return-void
.end method
# virtual methods
.method protected onCreate(Landroid/os/Bundle;)V
.locals 1
.parameter "savedInstanceState"
.prologue
.line 56
invoke-super {p0, p1}, Lpl/myname/BaseMenuActivity;->onCreate(Landroid/os/Bundle;)V
.line 57
const v0, 0x7f030003
invoke-virtual {p0, v0}, Lpl/myname/activities/ContactActivity;->setContentView(I)V
.line 59
invoke-direct {p0}, Lpl/myname/activities/ContactActivity;->setupView()V
.line 60
return-void
.end method
.method public onItemSelected(Landroid/widget/AdapterView;Landroid/view/View;IJ)V
.locals 4
.parameter
.parameter "view"
.parameter "position"
.parameter "id"
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/widget/AdapterView",
"<*>;",
"Landroid/view/View;",
"IJ)V"
}
.end annotation
.prologue
.local p1, parent:Landroid/widget/AdapterView;,"Landroid/widget/AdapterView<*>;"
const/16 v3, 0x8
const/4 v2, 0x0
.line 116
iget-object v0, p0, Lpl/myname/activities/ContactActivity;->customPersonToContact:Landroid/widget/TextView;
iget-object v1, p0, Lpl/myname/activities/ContactActivity;->contactNames:[Ljava/lang/String;
aget-object v1, v1, p3
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
.line 117
iget-object v0, p0, Lpl/myname/activities/ContactActivity;->mobile:[Ljava/lang/String;
aget-object v0, v0, p3
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v0
if-lez v0, :cond_1
.line 118
iget-object v0, p0, Lpl/myname/activities/ContactActivity;->customMobileToContact:Landroid/widget/TextView;
invoke-virtual {v0, v2}, Landroid/widget/TextView;->setVisibility(I)V
.line 119
iget-object v0, p0, Lpl/myname/activities/ContactActivity;->customMobileToContact:Landroid/widget/TextView;
iget-object v1, p0, Lpl/myname/activities/ContactActivity;->mobile:[Ljava/lang/String;
aget-object v1, v1, p3
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
.line 120
iget-object v0, p0, Lpl/myname/activities/ContactActivity;->mobile2:[Ljava/lang/String;
aget-object v0, v0, p3
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v0
if-lez v0, :cond_0
.line 121
iget-object v0, p0, Lpl/myname/activities/ContactActivity;->customMobileToContactSecond:Landroid/widget/TextView;
iget-object v1, p0, Lpl/myname/activities/ContactActivity;->mobile2:[Ljava/lang/String;
aget-object v1, v1, p3
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
.line 122
iget-object v0, p0, Lpl/myname/activities/ContactActivity;->customContactLayout:Landroid/widget/LinearLayout;
invoke-virtual {v0, v2}, Landroid/widget/LinearLayout;->setVisibility(I)V
.line 129
:goto_0
iget-object v0, p0, Lpl/myname/activities/ContactActivity;->customMailToContact:Landroid/widget/TextView;
iget-object v1, p0, Lpl/myname/activities/ContactActivity;->mails:[Ljava/lang/String;
aget-object v1, v1, p3
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
.line 130
return-void
.line 124
:cond_0
iget-object v0, p0, Lpl/myname/activities/ContactActivity;->customContactLayout:Landroid/widget/LinearLayout;
invoke-virtual {v0, v3}, Landroid/widget/LinearLayout;->setVisibility(I)V
goto :goto_0
.line 127
:cond_1
iget-object v0, p0, Lpl/myname/activities/ContactActivity;->customMobileToContact:Landroid/widget/TextView;
invoke-virtual {v0, v3}, Landroid/widget/TextView;->setVisibility(I)V
goto :goto_0
.end method
.method public onNothingSelected(Landroid/widget/AdapterView;)V
.locals 0
.parameter
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/widget/AdapterView",
"<*>;)V"
}
.end annotation
.prologue
.line 134
.local p1, arg0:Landroid/widget/AdapterView;,"Landroid/widget/AdapterView<*>;"
return-void
.end method
plik xml:
<?xml version=1.0" encoding="utf-8"?>
<resources>
<string-array name="spinner_items">
<item>Prokurent: Wojtek</item>
<item>Magdalena</item>
<item>Bartek</item>
<item>Marek</item>
</string-array>
</resources>
Do pliku xml wiem jak dodac pozycje, wiadomo. natomiast w smali jest klopot. kompiluje sie ale wywala apkę.
Jestem w czarnej <ciach>, a juz myślałem że problem rozwiązałem.
1. Apk zamieniłem na zip, zmieniając rozszerzenie pliku i rozpakowałem potem winrarem,
2. wziałem sobie plik classes.dex i go przetworzyłem programem dex2jar do jar, w środku otrzymałem pliki class
3. Zdekompilowałem jar programem jd-gui i otrzymałem pliki java
4. Poprawiłem co trzeba.
5 nie mogę znaleźć drogi powrotnej. wszystko, albo przynajmniej dwa pliki java które poprawiłem muszę skompilować do class, ale javac wywala błędy "package android.content.res does not exist" i inne takie o androidzie że mu brakuje innych komponentów.
6 gdyby udało mi się skompilowac te dwapliki do class to popróbowałbym wrócic z tym do classes.dex a to juz prawie koniec pracy.