Welcome guest, is this your first visit? Click the "Create Account" button now to join.
Results 1 to 10 of 29

Hybrid View

  1. #1
    Master LUNA: A new step into the unknown of scriptsLUNA: A new step into the unknown of scripts
    Join Date
    Nov 2017
    Location
    europa
    Posts
    81
    Rep Power
    161

    Default

    It is not possible to know how the scripts of the luna are compiled, they can as well generated from a converter like JigoLUA or directly converted by the application which compiles the apk, I know one thing is that jigolua decompiles the lua in a way that recompiling may deviate slightly from the original file. the decryption obtained by a third party software may seem correct but the interpretation by iGO may not work, the binary interpreter and the text interpreter integrated in iGO may not be 100% compatible with each other.

    as one can imagine attributing a string to a boolean can become functional with an implicit transcryption at the binary level but which must be specified when using a clear text

    The main goal is to get as close as possible to a functional clear code while taking into account what iGO wants to digest, it always starts by adding control points slipped into the scripts to understand its reactions to certain syntaxes, which is not always obvious because sometimes we go to a haircut of the solution.

    Edit:
    After a return in different versions, it turns out that the function described as falling under a widestring is in fact a boolean, we find the same line in the address.lua of Primo where it is less complicated to display a simple dialogue
    sc_InfoMessageBox(type(MODEL.address.search.support_streetsearch_in_state(AddressSearchResult.selectedCountry)),1)
    returns a boolean type as expected, so no modification needs to be made at this level
    Last edited by lunapark; 7th July 2021 at 06:23 PM.

  2.    Advertissements


  3. #2
    Member
    Join Date
    Apr 2016
    Location
    Brussels
    Posts
    15
    Rep Power
    0

    Default

    Quote Originally Posted by lunapark View Post
    IAfter a return in different versions, it turns out that the function described as falling under a widestring is in fact a boolean, we find the same line in the address.lua of Primo where it is less complicated to display a simple dialogue
    sc_InfoMessageBox(type(MODEL.address.search.support_streetsearch_in_state(AddressSearchResult.selectedCountry)),1)
    returns a boolean type as expected, so no modification needs to be made at this level
    You are (again) 100% right. There is some corruption in the LUA code that changes the country string (pointer) by one byte.
    Code:
    Please Login or Register to see the links
    works.
    Code:
    Please Login or Register to see the links
    crashes (real crash).

    Now I need to find why the address that is correct right before the function containing the code gets increased by one byte. I already solved a similar issue whether a function was missing a "self" argument.
    These are probably delicate locations where LUA code calls C-code.
    Will get there ... eventually. Thanks for all the help and the tip on sc_InfoMessageBox (very useful).

  4. #3
    Master LUNA: A new step into the unknown of scriptsLUNA: A new step into the unknown of scripts
    Join Date
    Nov 2017
    Location
    europa
    Posts
    81
    Rep Power
    161

    Default

    this seems to be what the old scripts did

    local selCountry = MODEL.map.cursor.address.country() --> "_BEL"
    if selCountry ~= "" then
    AddressSearchResult.selectedCountry = selCountry:sub(2, 4) --> "BEL"
    if AddressSearchResult.selectedCountry:sub(2, 2) == "*" then
    selState = MODEL.map.cursor.address.state()
    if selState ~= "" then
    AddressSearchResult.selectedCountry = selState:sub(2, 4)
    gSavedSelectedState = AddressSearchResult.selectedCountry
    else
    gSavedSelectedState = nil
    end
    end
    .....
    AddressSearchResult.streetsInState = MODEL.address.search.support_streetsearch_in_state(AddressSearchResult.selectedCountry) --> "BEL"
    About sc_InfoMessageBox (very useful).

    need to be used as it to obtain a visible result
    sc_InfoMessageBox("Result: /"..tostring(type("very useful").."/") --> /USERDATA/ , /STRING/ , /NIL/ ,......

  5. #4
    Member
    Join Date
    Apr 2016
    Location
    Brussels
    Posts
    15
    Rep Power
    0

    Default

    Quote Originally Posted by lunapark View Post
    this seems to be what the old scripts did
    That is also what I have. But even when I put the constant string "BEL", it crashes. Same with "FRA" etc. It does not crash with "USA" but also returns false, but than again I don't have USA maps loaded.
    Anything with an underscore goes, but always returns false. I also tried with a local variable (also with wide string): always crash.
    Interestingly, when I put the country in lower case, it does not crash and again returns false. Function "sc_HasCountryStates" seems to imply that countries with states start with a lower case.

    Look like it requires some additional code like
    Code:
    Please Login or Register to see the links
    or classic search backend code is broken for LUNA since I have other unexplained crashes...

  6. #5
    Member
    Join Date
    Apr 2016
    Location
    Brussels
    Posts
    15
    Rep Power
    0

    Default

    I found the root cause of the crashes with "MODEL.address.search.support_streetsearch_in_state()".
    To find it I had to use a debugger and disassemble the ARM code: the function does not take a country as argument, but a state.
    I could have saved an hour of work by using my brains first and interpret the name of function correctly: MODEL.address.search.support_streetsearch_in_state

    So correct code would look like:
    Code:
    Please Login or Register to see the links
    This also means, sadly, that some of the (compiled) LUA code is incorrect and thus can not work as-is, and hence why classic address search does not work.

  7. #6
    Master LUNA: A new step into the unknown of scriptsLUNA: A new step into the unknown of scripts
    Join Date
    Nov 2017
    Location
    europa
    Posts
    81
    Rep Power
    161

    Default

    from primo and nextgen on a better idea of the good formulation,


    Code:
    Please Login or Register to see the links
    by taking and adapting various elements leading to AddressSearchResult.selectedCountry it should end up running correctly in iqs.lua

    maybe in this form ?
    Code:
    Please Login or Register to see the links
    for the moment the decryption of the diferent versions still seems to hold water because I have no feedback concerning badly decrypted code, it seems that it is only for the moment bad programming at the base
    Last edited by lunapark; 27th July 2021 at 11:29 PM.

  8. #7
    Member
    Join Date
    Apr 2016
    Location
    Brussels
    Posts
    15
    Rep Power
    0

    Default

    Quote Originally Posted by lunapark View Post
    for the moment the decryption of the diferent versions still seems to hold water because I have no feedback concerning badly decrypted code, it seems that it is only for the moment bad programming at the base
    Indeed, no problems (anymore) with the decrypted code! The problems are in the compiled LUA and/or the libigo_ini.so for Igo Luna. Neither of classic_search or VR work in Luna and are actually not used (VR uses "onebox-vr"). Everything moved to OneBox search (hg_search, onebox_vr). Classic search (MODEL.address.search.<function>) crashes (country search works, but city or street crashes). Luna content files/structure is quite different and thus required changes in the back-end. Some things have been modified (e.g. support_streetsearch_in_state) but since the front-end is no longer used it was not adapted. I even used LUA techniques to overload "support_streetsearch_in_state" with my own code to take a country as argument while using the original, compiled "address.lua". As a result this function now works but it still crashes when searching for a city when using "classic_search". Will take one more look at IQS, there are some changes in the LUA there...

    EDIT: As expected IQS does not work with iGO Luna. It uses yet another search engine (MODEL.address.multi) but again the city search is crashing.
    Last edited by ecotje; 29th July 2021 at 10:13 AM.

  9. #8
    Master LUNA: A new step into the unknown of scriptsLUNA: A new step into the unknown of scripts
    Join Date
    Nov 2017
    Location
    europa
    Posts
    81
    Rep Power
    161

    NNG

    Adding as attachment the new decoded lua files from the last version İgo Basarsoft Nextgen 9.35.2.262743 (2021.08.31)

    Exclamation regarding lua files: really nothing new
    no changes compared to version 9.35.2.252374 (this Topic #3), only some ux were simply removed



    while waiting for a debridged apk version, the original files can be downloaded at this [Only registered and activated users can see links. ] ozut
    Attached Files Attached Files
    • This post requires you to click the "LIKE this post" button to see Attachments.
    Last edited by lunapark; 18th September 2021 at 01:06 AM.

 

 

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •