Jump to content
Nokioteca Forum

Richiesta Aiuto Ad Esperti: Kastors In C Oppure E Senza C2z


faenil
 Share

Recommended Posts

Salve ragazzi, per chi non mi conosce, sono faenil, un i8910 firmware modder abbastanza conosciuto :mumble:

sto cercando un modo per evitare di usare la c2z quando si vogliono attivare i kastors customizzati...

ho modificato (con una unica patch di rompatcher) aknskinsrv.dll , ImageViewer.exe, MGXUiBase.dll, ho copiato il file .sel in C (quello del tema di default s60), e ho modificato il manifest dei kastors per dirgli di leggere in C oppure E, ma non riesco ancora a far funzionare questa modifica...

qualcuno ha idea di cosa manchi?

Spero nella partecipazione di qualcuno di esperto... senza nulla togliere ai novelli :)

Modificato da faenil
Link to comment
Condividi su altri siti

cosi difficile?

modifica solo il file aknskinsvr.dll per prendere il manifest gli effetti da Z: a C: - Mandami il file se vuoi te lo modifico io

modifica anche il manifest (ma vedo che l'hai già fatto) :incazzato:

lascia stare la parte per la skin quella viene gestita in Z:

visto che sei un Cooker come me, non mettere la cartella effects in Z:

mettila in C:\Resource\Effects e copiaci i KML

rimetti tutto apposto e prova :crying_anim:

Modificato da IoEsisto
Link to comment
Condividi su altri siti

cosi difficile?

modifica solo il file aknskinsvr.dll per prendere il manifest gli effetti da Z: a C: - Mandami il file se vuoi te lo modifico io

modifica anche il manifest (ma vedo che l'hai già fatto) :mumble:

lascia stare la parte per la skin quella viene gestita in Z:

visto che sei un Cooker come me, non mettere la cartella effects in Z:

mettila in C:\Resource\Effects e copiaci i KML

rimetti tutto apposto e prova :crying_anim:

non vorrei sembrare presuntuoso, però non sono un niubbo :incazzato:

è logico che l'ho già modificato l'aknskinsvr.dll, c'è scritto nel mio primo messaggio, ho tolto la cartella da z, ho messo tutti gli effetti in C (dopo il format, i samsung hanno una struttura fw diversa, l'unico modo per copiarli dopo l'hardreset è con lo script) :| ho provato sia modifica hex e poi impianto nel fw, e sia patch per rompatcher per modificare la dll, stesso risultato..

scusa ma, tu hai già funzionante i kastor in C senza c2z?

perchè per supposizione anche io pensavo bastasse modificare aknskinsvr.dll (ho modificato anche gli altri due file)..

invece non va

Modificato da faenil
Link to comment
Condividi su altri siti

allora, dopo prove e riprove devo desistere... non va... o per lo meno la teoria non coincide con la pratica

aknskinsvr.dll è il file giusto da modificare perché ha l'indirizzamento a Z:\Resource\Effects e gestisce anche gli skin quindi è questo il file

ora bisogna vedere 2 cose

1) il manifest deve essere modificato in maniera tale che tutti i file abbiano riferimento C:\Resource\Effects e cosi anche il file sel cioè ogni effetto deve fare riferimento a una path ben precisa

2) gli effetti sono legati agli skin? a questo punto entra in gioco anche il tema di defautl che si va a mettere

CenREP 101F876F

Modificato da IoEsisto
Link to comment
Condividi su altri siti

hai provato a vedere i riferimenti che vengono cambiati in EFSvr.dll dalla C2Z ?

sì ho provato tempo fa, purtroppo non sono stringhe, è codice compilato...

ho aperto la dll con IDA Pro ed ho visto le istruzioni che vengono cambiate modificando quei valori esadecimali...

ma non ho esperienza di assembler ARM quindi non sono riuscito a capire nulla

Link to comment
Condividi su altri siti

In base ai risultati che avete ottenuto, suppongo che aknskinsvr.dll (o altro componente legato alla gestione dei kastor) utilizzi la funzione RFile::Open() di efsrv.dll per caricare alcuni file...

RFile::Open() e' la funzione che viene patchata dalla c2z.

Puo' tornare molto utile collezionare il maggior numero di informazioni possibili:

- individuare tutti i componenti kastor che utilizzano la RFile::Open()

- individuare quale/i file vengono caricati tramite questa funzione

L'idea di fondo e' di arrivare a capire chi e' che chiama la RFile::Open() e poter patchare il parametro passato in modo da includere anche il drive "c:\"

Al fondo di questo post c'e' una descrizione aggiuntiva:

https://www.nokioteca.net/home/forum/index....t&p=1276219

Modificato da Il.Socio
Link to comment
Condividi su altri siti

In base ai risultati che avete ottenuto, suppongo che aknskinsvr.dll (o altro componente legato alla gestione dei kastor) utilizzi la funzione RFile::Open() di efsrv.dll per caricare alcuni file...

RFile::Open() e' la funzione che viene patchata dalla c2z.

Puo' tornare molto utile collezionare il maggior numero di informazioni possibili:

- individuare tutti i componenti kastor che utilizzano la RFile::Open()

- individuare quale/i file vengono caricati tramite questa funzione

L'idea di fondo e' di arrivare a capire chi e' che chiama la RFile::Open() e poter patchare il parametro passato in modo da includere anche il drive "c:\"

Al fondo di questo post c'e' una descrizione aggiuntiva:

https://www.nokioteca.net/home/forum/index....0&p=1276219

grazie per il supporto marco...

ma come vedo quali file utilizzano la open :Dito:

e come vedi quali file vengono caricati :)

Modificato da faenil
Link to comment
Condividi su altri siti

allora oggi mi cimenterò di nuovo, prima di andare ad operare sulle dll principali

bisognerebbe fare queste prove, se qualcuno le ha già fatte magari me lo dicesse :)

1) svincolare gli effetti dal tema default S60theme per intenderci quindi aver cancellato il 101f8b9.sel

2) indicare la skin di default che verrà utilizzata in 101F876F.txt 0x2 0x13 0x14

3) modificare aknskinsvr.dll per far gestire il tutto in E: cosi non ci sbagliamo ;)

4) dopo di che sempre modificando il file 101F876F.txt 0x1 mettiamo come valore 2 al posto di 0 per dirgli che il tema è in E:

Prima Prova

5) mettere il file *.sel in E:\Resource\Skin\NomeTema\ rinominandolo con uid del tema che abbiamo impostato come default

6) mettere il file manifest in E:\Resource\Effects\

Seconda Prova - se la prima non ha successo

7) mettere il file *.sel in E:\private\10207114\import\NomeTema\*.sel

8) mettere il manifest in E:\Resource\Effects\

==========================================================================

Fatemi sapere ;)

Modificato da IoEsisto
Link to comment
Condividi su altri siti

allora oggi mi cimenterò di nuovo, prima di andare ad operare sulle dll principali

bisognerebbe fare queste prove, se qualcuno le ha già fatte magari me lo dicesse :D

1) svincolare gli effetti dal tema default S60theme per intenderci quindi aver cancellato il 101f8b9.sel

2) indicare la skin di default che verrà utilizzata in 101F876F.txt 0x2 0x13 0x14

3) modificare aknskinsvr.dll per far gestire il tutto in E: cosi non ci sbagliamo :lol:

4) dopo di che sempre modificando il file 101F876F.txt 0x1 mettiamo come valore 2 al posto di 0 per dirgli che il tema è in E:

Prima Prova

5) mettere il file *.sel in E:\Resource\Skin\ rinominandolo con uid del tema che abbiamo impostato come default

6) mettere il file manifest in E:\Resource\Effects\

Seconda Prova - se la prima non ha successo

7) mettere il file *.sel in E:\private\10207114\import\NomeTema\*.sel

8) mettere il manifest in E:\Resource\Effects\

==========================================================================

Fatemi sapere ;)

ma sei sicuro che basta modificare aknskinsrv.dll? io modifico anche gli altri due...

inoltre, Il.Socio, secondo te è meglio per la modifica delle dll ed exe, fare una patch con rompatcher da applicare sui file originali, oppure mettere i file modificati nel rofs1 (gli originali sono nel file core)?

cioè mettendo i file nel rofs1 questi vanno a sovrascrivere quelli del file core, ma non è che si sfasa qualche indirizzo? (si assume che la lunghezza dei due file sia la stessa e venga cambiato solo quel byte del drive)...

cioè li sovrascrive e basta? posso stare tranquillo?

io sapevo inoltre che veniva controllato il checksum dei file, quindi se metto un file (della rom) modificato in rofs1, ci sono dei problemi perchè il sistema riconosce che non è quello con cui è stata compilata la rom...

che mi dici?

Modificato da faenil
Link to comment
Condividi su altri siti

grazie per il supporto marco...

ma come vedo quali file utilizzano la open :D

e come vedi quali file vengono caricati :lol:

Purtroppo ho pochissimo tempo in questo periodo e devo prepararmi per le vacanze... altrimenti ti avrei potuto semplificare il lavoro un bel po'.

Per vedere chi usa la rfile:open() forse puoi dare uno sguardo al sito symbian e dei relativi sorgenti, in modo da recuperare la lista delle dipendenze... devi arrivare ad ottenere tutte le dll e gli exe che utilizzano la rfile:open()

Sara' relativa alla 5th edition, ma meglio di niente.

Per un approccio piu' metodico e preciso, e' necessario un dump del firmware ed una analisi dei vari import/export (nel thread sui "kastor - ricerca" ci sono alcuni riferimenti a riguardo).

Per i file che vengono caricati, esiste un file monitor (per 3rd), che gira sul cell. e che logga tutte le operazioni che vengono compiute sui file... apertura/lettura/scrittura/chiusura.

Ma non ce l'ho sottomano al momento e non ho tempo di recuperarlo... forse si chiama proprio "filemon".

Modificato da Il.Socio
Link to comment
Condividi su altri siti

Purtroppo ho pochissimo tempo in questo periodo e devo prepararmi per le vacanze... altrimenti ti avrei potuto semplificare il lavoro un bel po'.

Per vedere chi usa la rfile:open() forse puoi dare uno sguardo al sito symbian e dei relativi sorgenti, in modo da recuperare la lista delle dipendenze... devi arrivare ad ottenere tutte le dll e gli exe che utilizzano la rfile:open()

Sara' relativa alla 5th edition, ma meglio di niente.

Per un approccio piu' metodico e preciso, e' necessario un dump del firmware ed una analisi dei vari import/export (nel thread sui "kastor - ricerca" ci sono alcuni riferimenti a riguardo).

Per i file che vengono caricati, esiste un file monitor (per 3rd), che gira sul cell. e che logga tutte le operazioni che vengono compiute sui file... apertura/lettura/scrittura/chiusura.

Ma non ce l'ho sottomano al momento e non ho tempo di recuperarlo... forse si chiama proprio "filemon".

ok ti ringrazio :lol: se mi dai una risposta anche alle domande sotto te ne sarei grato :D

comunque nei sorgenti di S^3 non c'è segno di rfile::Open nei file riguardanti kastor...

c'è efsrvu.def, qualche altro file di messaggistica...

Modificato da faenil
Link to comment
Condividi su altri siti

inoltre, Il.Socio, secondo te è meglio per la modifica delle dll ed exe, fare una patch con rompatcher da applicare sui file originali, oppure mettere i file modificati nel rofs1 (gli originali sono nel file core)?

cioè mettendo i file nel rofs1 questi vanno a sovrascrivere quelli del file core, ma non è che si sfasa qualche indirizzo? (si assume che la lunghezza dei due file sia la stessa e venga cambiato solo quel byte del drive)...

cioè li sovrascrive e basta? posso stare tranquillo?

Non ci metto la mano sul fuoco, ma se il file si trova in rom, non credo che tu possa mettere in rofs l'eseguibile patchato pensando di sovrascrivere quello del core... proprio per via dell'indirizzamento diretto... Che tu sappia, esiste qualche caso in cui questo e' gia' stato fatto?

Se invece si trova in rofs nel core, allora puoi mettere le versioni gia' patchate in rofs1 senza preoccuparti di sfasare nulla.

Gli eseguibili che si trovano in rom, hanno una struttura differente da quelli che si trovano in rofs.

Per patchare il file che si trova in rom, dovrai usare una patch di rompatcher.

P.S. nota nei sorgenti non devi cercare testualmente "rfile::open"...

la chiamata a quella funzione, potrebbe presentarsi cosi':

RFile test;

test.Open("\\pippo");

o ancora soltanto come:

iTest.Open("\\pippo");

dove iTest e' una variabile di istanza della classe, definita nell'header come RFile iTest;

Modificato da Il.Socio
Link to comment
Condividi su altri siti

Non ci metto la mano sul fuoco, ma se il file si trova in rom, non credo che tu possa mettere in rofs l'eseguibile patchato pensando di sovrascrivere quello del core... proprio per via dell'indirizzamento diretto... Che tu sappia, esiste qualche caso in cui questo e' gia' stato fatto?

Se invece si trova in rofs nel core, allora puoi mettere le versioni gia' patchate in rofs1 senza preoccuparti di sfasare nulla.

Gli eseguibili che si trovano in rom, hanno una struttura differente da quelli che si trovano in rofs.

Per patchare il file che si trova in rom, dovrai usare una patch di rompatcher.

P.S. nota nei sorgenti non devi cercare testualmente "rfile::open"...

la chiamata a quella funzione, potrebbe presentarsi cosi':

RFile test;

test.Open("\\pippo");

o ancora soltanto come:

iTest.Open("\\pippo");

dove iTest e' una variabile di istanza della classe, definita nell'header come RFile iTest;

non mi viene in mente nessun caso...

il problema è come faccio a capire quali file del core sono in rom e quali in rofs? l'header EPOC non c'è in nessun file del fw samsung...

il fw samsung ha questi file : .core, .rofs1, .rofs2, .rofs3, .rofs4 ... oltre ad altri tipo nbl ecc

come riconosco nel .core (che non è editabile con nessun programma) quali file sono in rom e quali in rofs?

ti ringrazio per la dritta sulle chiamate :rolleyes: sto aspettando che mi arrivi "QT for Symbian" per cominciare con la programmazione symbian :mumble:

pregherei qualche programmatore symbian di dare una occhiatina qui... http://developer.symbian.org/xref/epl/xref...src/AknsSrv.cpp

"_LIT(KTFxDefaultExtensionPath, "z:\\resource\\skins\\");"

penso che sia rilevante anche questo pezzo

2005 if ( location == EAknsSrvPhone )

2006 {

2007 CAknsSrvDriveMaster::GetDefaultDrive( DriveInfo::EDefaultPhoneMemory, path );

2008 if ( path.Length() > 0 )

2009 {

2010 path.Append( KAknSkinSrvPrivateSkinPath );

2011 }

2012 }

che fa l'append del drive al path delle skins

il problema è come faccio a vedere dove viene create il "aMessage" che viene passato, dove c'è scritto la location?

trovo solo definizioni e non trovo nessun che crea il messaggio e lo manda...

Modificato da faenil
Link to comment
Condividi su altri siti

io stavo giusto smanettando sul FW Samsung e non è difficile come sui Nokia lo smembramento del CORE te pensa che ho usato un semplice programmino che mi ha dato 5 cartelle, Core Rofs1 Rofs2 Rofs3 Rofs4 con dentro i rispettivi file immagini

i file immagini li puoi editare con ROFSVIEW ed extrarli

ma non mi chiedere come fare per ricrearli che non lo so ancora...

spero di esser stato d'aiuto :thumbs:

Link to comment
Condividi su altri siti

io stavo giusto smanettando sul FW Samsung e non è difficile come sui Nokia lo smembramento del CORE te pensa che ho usato un semplice programmino che mi ha dato 5 cartelle, Core Rofs1 Rofs2 Rofs3 Rofs4 con dentro i rispettivi file immagini

i file immagini li puoi editare con ROFSVIEW ed extrarli

ma non mi chiedere come fare per ricrearli che non lo so ancora...

spero di esser stato d'aiuto :lol:

ioEsisto come te lo devo dire :thumbs: sono rom cooker da agosto appena uscito l'omnia hd, ci sono articoli su di me su gsmarena, allaboutsymbian, hdblog, insomma non mi servono le basi :lol:

quando ho cominciato a fare il rom cooker bisognava ancora ricrearsi i file .oby a mano, perchè non c'era un tool apposito che ripacchettava tutto in un attimo...

ti ripeto non voglio risultare presuntuoso, è solo per evitare di ripeterci cose che sappiamo già, e passare un po' più al tecnico ;)

il core non si può editare, si può solo estrarre.

per rebuidare i file basta cliccare sul pulsante apposito in rofsviewer

questo progetto è importantissimo anche per i Nokia...se riuscissimo a farlo andare sicuramente parecchie persone ce ne sarebbero grate...

Modificato da faenil
Link to comment
Condividi su altri siti

il problema è come faccio a capire quali file del core sono in rom e quali in rofs? l'header EPOC non c'è in nessun file del fw samsung...

Con uno di questi metodi (nota che alcuni metodi sono validi solo per gli eseguibili)

https://www.nokioteca.net/home/forum/index....howtopic=150394

Fw samsung o nokia non fa differenza... il formato dei vari file eseguibili e non e' sempre lo stesso, cosi' come e' lo stesso il formato del dumprom.

L'unica cosa che differisce tra i due e' il formato in cui viene assemblato poi il firmware.

il problema è come faccio a vedere dove viene create il "aMessage" che viene passato, dove c'è scritto la location?

trovo solo definizioni e non trovo nessun che crea il messaggio e lo manda...

Non e' cosi' immediato capirlo... Puo' essere un "qualsiasi" altro processo / eseguibile.

La spiegazione completa e' abbastanza lunga e richiede conoscenza dell'architettura client-server di symbian... quella breve, invece, e' che arriva da qui:

http://developer.symbian.org/xref/oss/xref...vClient.cpp#438

Devi cercare tutti gli eseguibili che richiamano la RAknsSrvSession::OpenInifile()

Funzione che dovrebbe far parte di AKNSKINSRV.dll / AKNSKINSRV.lib (vale a dire che questi eseguibili linkano necessariamente con AKNSKINSRV.lib)

Modificato da Il.Socio
Link to comment
Condividi su altri siti

Con uno di questi metodi (nota che alcuni metodi sono validi solo per gli eseguibili)

https://www.nokioteca.net/home/forum/index....howtopic=150394

Fw samsung o nokia non fa differenza... il formato dei vari file eseguibili e non e' sempre lo stesso, cosi' come e' lo stesso il formato del dumprom.

L'unica cosa che differisce tra i due e' il formato in cui viene assemblato poi il firmware.

Non e' cosi' immediato capirlo... Puo' essere un "qualsiasi" altro processo / eseguibile.

La spiegazione completa e' abbastanza lunga e richiede conoscenza dell'architettura client-server di symbian... quella breve, invece, e' che arriva da qui:

http://developer.symbian.org/xref/oss/xref...vClient.cpp#438

Devi cercare tutti gli eseguibili che richiamano la RAknsSrvSession::OpenInifile()

Funzione che dovrebbe far parte di AKNSKINSRV.dll / AKNSKINSRV.lib (vale a dire che questi eseguibili linkano necessariamente con AKNSKINSRV.lib)

ti ringrazio per la solita pazienza marco :P

praticamente la OpenInifile chiede al server di eseguire la OpenInifileL con una sendreceive...

ma OpenInifile è utilizzata solo qui http://developer.symbian.org/xref/oss/xref...sclient.cpp#514

che è un programma di test tra l'altro... :|

come è possibile :|

Link to comment
Condividi su altri siti

Test della giornata

Riuscito

1) svincolare gli effetti dal tema default S60theme per intenderci quindi aver cancellato il 101f8b9.sel

2) indicare la skin di default che verrà utilizzata in 101F876F.txt 0x2 0x13 0x14

c'è da notare che se questa funzione venga modificata, e cambio tema, gli effetti smettono di funzionare anche se si trovano in Z:\

quindi gli effetti sono legati ai temi

* Quindi per uno sviluppo: si potrebbero far partire più effetti anche se sono in Z

Fallito

3) modificare aknskinsvr.dll per far gestire il tutto in E: cosi non ci sbagliamo

4) dopo di che sempre modificando il file 101F876F.txt 0x1 mettiamo come valore 2 al posto di 0 per dirgli che il tema è in E:

5) mettere il file *.sel in E:\Resource\Skin\NomeTema\ rinominandolo con uid del tema che abbiamo impostato come default

6) mettere il file manifest in E:\Resource\Effects\

il cellulare parte trova il tema, ma gli effetti non vengono caricati, al secondo riavvio il cellulare parte ma poi si resetta sempre "Come se in fase di caricamento non riesca a trovare un file o dei file in particolare"

Link to comment
Condividi su altri siti

Test della giornata

Riuscito

1) svincolare gli effetti dal tema default S60theme per intenderci quindi aver cancellato il 101f8b9.sel

2) indicare la skin di default che verrà utilizzata in 101F876F.txt 0x2 0x13 0x14

c'è da notare che se questa funzione venga modificata, e cambio tema, gli effetti smettono di funzionare anche se si trovano in Z:\

quindi gli effetti sono legati ai temi

* Quindi per uno sviluppo: si potrebbero far partire più effetti anche se sono in Z

Fallito

3) modificare aknskinsvr.dll per far gestire il tutto in E: cosi non ci sbagliamo

4) dopo di che sempre modificando il file 101F876F.txt 0x1 mettiamo come valore 2 al posto di 0 per dirgli che il tema è in E:

5) mettere il file *.sel in E:\Resource\Skin\NomeTema\ rinominandolo con uid del tema che abbiamo impostato come default

6) mettere il file manifest in E:\Resource\Effects\

il cellulare parte trova il tema, ma gli effetti non vengono caricati, al secondo riavvio il cellulare parte ma poi si resetta sempre "Come se in fase di caricamento non riesca a trovare un file o dei file in particolare"

a me stessi risultati ma non si resetta, il tema viene caricato (da F, perchè selezionando 2 nel txt guarda in F) ma gli effetti non vengono caricati, ed è sempre così...

non ho capito la storia della funzione modificata, di quale funzione parli?

Link to comment
Condividi su altri siti

nel senso che avevo lasciato il file .sel in Z: pero legandolo al tema messo da me sempre in Z: rinominandolo e mettendolo nella cartella Resource\Skin\NomeTema\

quindi con questo tema messo da me gli effetti partivano, con gli altri installati successivamente no...

ok...vabè torniamo a noi, fatemi sapere se avete qualche notizia...

io al momento non so che fare...

Link to comment
Condividi su altri siti

Please sign in to comment

You will be able to leave a comment after signing in



Accedi Ora
 Share

×
×
  • Crea Nuovo...

Informazione Importante

Questo sito utilizza i cookie per analisi, contenuti personalizzati e pubblicità. Continuando la navigazione, accetti l'utilizzo dei cookie da parte nostra | Privacy Policy