Skocz do zawartości
CheQ

Wartość "informacje o systemie" odczytywana z pliku build.prop

    Rekomendowane odpowiedzi

    CheQ

    Witam. Jest to mój pierwszy poradnik - proszę z góry o wyrozumiałość.

    Metoda ta została sprawdzona na telefonie z Androidem 2.3.4 , nie powinno być problemu z wersjami wyżej.

    Pokaże wam jak dodać do romu informacje odczytywaną z pliku build.prop , podobnie jak w Cyanogenmod bądź wartości "Numer Kompilacji"

    Przed przeczytaniem APELUJE o przeczytanie poradnika o dekompilacji i kompilacji aplikacji.

    bez zrozumienia tego nie czytaj dalej.

    Link -> http://forum.android.com.pl/f14/edycja-plika-w-apk-w-prosty-sposa-b-303375/

    1) Zdekompiluj Settings.apk

    2) W zdekompilowanym "projekcie" znajdź plik device_info_settings.xml (Settings/res/xml)

    3) Otwórz go (polecam Notepad++) i za linijką

    <Preference android:title="@string/build_number" android:key="build_number" android:summary="@string/device_info_default" style="?android:preferenceInformationStyle" />

    dodaj

    <Preference android:title="@string/your_rom_version" android:key="your_rom_version_key" android:summary="@string/your_rom_version_default" style="?android:preferenceInformationStyle" />

    4)Znajdź plik strings.xml (Settings/res/values) i przed końcem czyli

    </resources>

    Dodaj

    <string name="your_rom_version">My Rom Version</string>
    <string name="your_rom_version_default">My Rom Version Value</string>

    Po tej akcji już teraz w tym momencie w ustawieniach "Informacje o Telefonie" będziemy mieli nowy "rekord" o nazwie "My Rom Version" i wartości "My Rom Version Value". My Rom Version możemy zmienić dowolnym tekstem , jest to "Tytuł" rekordu , "My Version Value" to wartość ustawiana gdy nie będzie podanego rekordu w build.prop. niestety będzie on stały, do zmiany potrzebujemy dekompilowac i kompilować znowu , a nie do tego dąże ;)

    5)Znajdź plik DeviceInfoSettings.smali (/Settingssmali/com/android/settings) i znajdź

    .line 83
       const-string v8, "firmware_version"
    
       invoke-virtual {p0, v10}, Lcom/android/settings/DeviceInfoSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
    
       move-result-object v8
    
       invoke-virtual {v8, v11}, Landroid/preference/Preference;->setEnabled(Z)V
    
       .line 84
       const-string v8, "baseband_version"
    
       const-string v9, "gsm.version.baseband"
    
       invoke-direct {p0, v8, v9}, Lcom/android/settings/DeviceInfoSettings;->setValueSummary(Ljava/lang/String;Ljava/lang/String;)V
    
    .line 85
       const-string v8, "device_model"
    
       sget-object v9, Landroid/os/Build;->MODEL:Ljava/lang/String;
    
       invoke-direct {p0, v8, v9}, Lcom/android/settings/DeviceInfoSettings;->setStringSummary(Ljava/lang/String;Ljava/lang/String;)V
    
       .line 86
       const-string v8, "build_number"
    
       sget-object v9, Landroid/os/Build;->DISPLAY:Ljava/lang/String;
    
       invoke-direct {p0, v8, v9}, Lcom/android/settings/DeviceInfoSettings;->setStringSummary(Ljava/lang/String;Ljava/lang/String;)V
    
       .line 87
       const-string v8, "kernel_version"
    
       invoke-virtual {p0, v8}, Lcom/android/settings/DeviceInfoSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
    
       move-result-object v8
    
       invoke-direct {p0}, Lcom/android/settings/DeviceInfoSettings;->getFormattedKernelVersion()Ljava/lang/String;
    
       move-result-object v9
    
       invoke-virtual {v8, v9}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V

    6) Przed

    .line 84
       const-string v8, "baseband_version"
    
       const-string v9, "gsm.version.baseband"
    
       invoke-direct {p0, v8, v9}, Lcom/android/settings/DeviceInfoSettings;->setValueSummary(Ljava/lang/String;Ljava/lang/String;)V

    dodaj

    const-string v1, "your_rom_version_key"
    
    const-string v2, "ro.yourromname"
    
    invoke-direct {p0, v1, v2}, Lcom/android/settings/DeviceInfoSettings;->setValueSummary(Ljava/lang/String;Ljava/lang/String;)V

    Zapisz.

    Teraz nasza nowo dodana wartość będzie ustawiana z pobranej wartości pliku build.prop. ;)

    7) Skompiluj , wrzuć na telefon , zmień uprawnienia na rw-r--r-- i reboot !

    A , nie zapomnij dodać do build.prop wartości. np:

    ro.yourromname=CheQ.example

    i jush! Przykład :

    post-125660-14255740258509_thumb.png

    Tadam. :hurra:

    Orginalny temat z opisem dekompilacji i kompilacji - [GUIDE] Add to Device Info the value read from Build.prop (like in CyanogenMOD) - xda-developers

    Po jego dodaniu uświadomiono mnie że już taki temat na xda jest , pomimo iż tygodniami szukałem. :facepalm:

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.