История одного «хака» или «принудительное» востановление Navigon с привязкой к Android смартфону

в 7:14, , рубрики: android, imei, Migration, Песочница, Смартфоны и коммуникаторы, метки: , ,

Сразу скажу, что я не ломал этой программы, поэтому слово «хак» взято в кавычки далеко не случайно. Все получилось ..., а в прочем давайте по порядку.

Потеряв свой Android я был черезвычайно расстроен. Мало того что я корил себя за разгильдяйство — я не знал даже где и как это случилось (может его украли или выпал где) – мне нужно было купить (выбрать) новый, создать более-менее «рабочее окружение» на новом телефоне – рутовать его, поставить новую firmware, firewall, востанавливать все приложения и конфиги. А их у меня было немало.
Сам телефон было не жалко — он был уже старенький, был медлючь и тежеловесен (ЦПУ и память), хотя и не позволял чувствовать себя совсем ущербным с 7-м CyanogenMod и новым kernel. Его следовало уже давно выбросить и купить новый, но всякий раз, матерясь и грозясь заменить его при очередных тормозах, меня останавливала как раз потеря времени на установку и перенос всего, что было в старом смартфоне.

Делайте backup!

Меня успокаивало, что у меня сохранилась backup копия старой SD-карты и копия приложений с данными, сделаный Titanium Backup не так давно.

Выбирал новый Android долго и трудно — хотелось и два сима и внешную клавиатуру и блэкджек … и чтоб рут можно было сделать. После покупки нового телефона, поставив root, новый kernel и firmware, начал муторно востанавливать все что было: конфигурация, все настройки, скрипты (я програмист), виджеты и т.д. и т.п.
Когда появился Wlan, Гугль быстро вернул мне все контакты и календарь после синхронизации. Titanium Backup востановил все программы и большую часть всех их настроек.

Я уже было обрадовался и решил, что остальное настрою в процессе эксплуатации.
Но щелкнув по первой попавшейся иконке, ей оказался Navigon, я в растроеных чувствах выругался и пошел пить пиво. Он не работал… просил Wlan (чего до этого не делал) и благополучно вылетал после подтверждения. Толи такой перенос с мобильника на мобильник вообще не был предусмотрен, толи перерегистрация не работала (хотя один и тот же гугл акаунт в маркете и например все книги для кидла открываются на ура). Печалька...

Нет заплаченых за него когда-то 60 Евро было не жалко – навигатор послужил мне хорошую службу. Просто я расчитывал отделаться достаточно легко, а тут первая запущеная программа приказала долго жить.

Собственно «хак»

Немного полазив по форумам и выяснив для себя какая это головная боль доказать, что хочешь установить купленую тобой программу на новый смарт, при этом старого уже нет, я решил для начала попробовать поковыряться самому (программист я или где).

Полазив в app-папке navigon (root рулит) не нашел ничего, напоминающего конфиг, заглянул в другую папку Navigon на SD-карте, где лежат все карты, голоса и тому подобное.
Там в файле «version.xml» нашелся IME моего старого телефона и какой-то productid.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<config>
    <software>
        <version>4.5</version>
        <build></build>
        <brand>NAVIGON_EU</brand>
        <platform>MN7_ANDROID_SELECT</platform>
        <productprefix>AS</productprefix>
        <copyright>Navigon AG, Copyright (C) 2011</copyright>
        <imei>923901965223204</imei>
        <id>923901965223204</id>
        <productid>ASJODF1XUVRO3MSMSFIUXQPPSNIASEHGQO71E8J</productid>
    </software>
</config>

Мысль, что они как-то проверяются на соответствие, оказалась верной, поскольку после изменения на мой новый IME навигатор вообще наотрез отказался запускаться.

Уже собираясь ломать apk (потому как неповадно) я вдруг вспомнил, что у меня где-то была старая предыдущая версия Navigon Select 3.5, которую я потом купил и обновил до 4.0.
Нашел и сбросил этот apk на SD-карту сотового, я переименовал папку Navigon в Navigon.bak к чертям снес Navigon установленый Titanium-ом и установил старый 3.5-й навигатор. После установки, запустив его и разрешив ему интернет (у меня firewall) увидел его сообщение, что у меня нет столько места на SD – он хотел 1,55ГБ. Закрыв навигатор, и заглянув на SD — хотел проверить место – увидел там новую папку Navigon, а в ней файл «version.xml» с моим новым IME и совсем другим productid.
Вот только productid начинался не на «AS» а на «AC» и productprefix тоже был «AC».
Переименовав папку Navigon.bak обратно в Navigon и изменив в «version.xml» productid на этот, при том оставил первые две буквы «AS» как в моем productprefix.
И он заработал! (Спустя месяц меня уже не одолевали сомнения, что он после месяца работы попросит его купить. Он работает до сих пор.)
Кроме того после обновления на версию 4.5.0 он позволил обновить мне все карты. Видимо в productid еще зашита и дата установки. Мои были 2009 или 2010 года.
Я решил еще немного уделить ему времени и посмотреть, что можно удалить из этой папки с целью освободить место. Из папки Navigon/map ушли в бэкап все ненужные карты (1Гб) и из папки Navigon/sound все ненужные голоса (500МБ, все кроме одного – я использую tts так как с ним навигатор гораздо разговорчивее — выговариваются названия улиц, номера трасс и съездов с трассы, и т.д.).

После старта Navigon попросил интернет и проигнорировав карты, снова стянул с сервера все голоса в папку Navigon/sound. Тогда я попробовал просто обнулить эти файлы. С тем же отрицательным результатом.
Попробовал с каким-то одним файлом — и это сработало. Так как самые большие файлы это tts, то я решил обнулить только их и, смотря с подозрением на файлы с началом eng, тоже решил их оставить (вдруг дефолтные?). Ниже лежит Tcl-Script – если кому надо — чтоб не вручную. Для тех кто не tcl-ит: для всех *.nfs, игнорируя начинаюшиеся на eng, ger, rus или которые не tts, открыть и закрыть файл.
Так в дополнение к 1Гб ненужных карт, я сэкономил еще 300МБ на ненужных голосах.

% cd Navigon/sound
% foreach fn [glob *.nfs] {
    if {[regexp {^(eng|ger|rus)} $fn] || ![regexp {.*tts.*} $fn]} continue; 
    #file copy $fn {/backup/navigon/sound}; 
    puts $fn; set f [open $fn wb]; close $f
  }
cze-CZE_Jana_tts.nfs
....
swe-SWE_Malin_tts.nfs

Так закончился мой «хэкинг» программы Navigon. Я уже давно не школьник и мое хакерство, за ради сломать, ушло в далекое прошлое вместе с частью волос с моей головы. Теперь я уже достаточно зарабатываю, чтобы позволить купить себе эти программы. Но настолько просто «сломать» защиту мне не приходилось еще никогда.

Это была естественно не последняя программа с привязкой к смартфону. Например, намучился я с Navionics Marine Navigator (я люблю морскую рыбалку и без его карт и трэкинга теперь как без рук). Но это уже тема другого поста.

PS. вопрос к комьюнити (может есть-кто меняет смартфон как перчатки):
Как вообще проходит переезд на другой смартфон? Может просто я паникер что то делаю не так?

Автор: sebres

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js