[Symbian Installation File] Decode requisite UIDs for Series 60 Platform IDs.

This commit is contained in:
2023-10-07 11:35:46 +01:00
parent 67845aab29
commit 3e2280bf9b
5 changed files with 255 additions and 5 deletions

View File

@@ -150,7 +150,7 @@ namespace Aaru.Archives {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Required UID {0} version {1}.{2}. /// Looks up a localized string similar to Required {0} version {1}.{2}.
/// </summary> /// </summary>
internal static string Required_UID_0_version_1_2 { internal static string Required_UID_0_version_1_2 {
get { get {
@@ -194,6 +194,123 @@ namespace Aaru.Archives {
} }
} }
/// <summary>
/// Looks up a localized string similar to UID 0x{0:X8}.
/// </summary>
internal static string SIS_Platform_UID_0 {
get {
return ResourceManager.GetString("SIS_Platform_UID_0", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Nokia Belle.
/// </summary>
internal static string SIS_Platform_UID_Nokia_Belle {
get {
return ResourceManager.GetString("SIS_Platform_UID_Nokia_Belle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Series 60 1st Edition.
/// </summary>
internal static string SIS_Platform_UID_Series_60_1st_Edition {
get {
return ResourceManager.GetString("SIS_Platform_UID_Series_60_1st_Edition", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Series 60 1st Edition, Feature Pack 1.
/// </summary>
internal static string SIS_Platform_UID_Series_60_1st_Edition_Feature_Pack_1 {
get {
return ResourceManager.GetString("SIS_Platform_UID_Series_60_1st_Edition_Feature_Pack_1", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Series 60 2nd Edition.
/// </summary>
internal static string SIS_Platform_UID_Series_60_2nd_Edition {
get {
return ResourceManager.GetString("SIS_Platform_UID_Series_60_2nd_Edition", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Series 60 2nd Edition, Feature Pack 1.
/// </summary>
internal static string SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_1 {
get {
return ResourceManager.GetString("SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_1", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Series 60 2nd Edition, Feature Pack 2.
/// </summary>
internal static string SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_2 {
get {
return ResourceManager.GetString("SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_2", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Series 60 2nd Edition, Feature Pack 3.
/// </summary>
internal static string SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_3 {
get {
return ResourceManager.GetString("SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_3", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Series 60 3rd Edition.
/// </summary>
internal static string SIS_Platform_UID_Series_60_3rd_Edition {
get {
return ResourceManager.GetString("SIS_Platform_UID_Series_60_3rd_Edition", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Series 60 3rd Edition, Feature Pack 1.
/// </summary>
internal static string SIS_Platform_UID_Series_60_3rd_Edition_Feature_Pack_1 {
get {
return ResourceManager.GetString("SIS_Platform_UID_Series_60_3rd_Edition_Feature_Pack_1", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Series 60 3rd Edition, Feature Pack 2.
/// </summary>
internal static string SIS_Platform_UID_Series_60_3rd_Edition_Feature_Pack_2 {
get {
return ResourceManager.GetString("SIS_Platform_UID_Series_60_3rd_Edition_Feature_Pack_2", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Series 60 5th Edition.
/// </summary>
internal static string SIS_Platform_UID_Series_60_5th_Edition {
get {
return ResourceManager.GetString("SIS_Platform_UID_Series_60_5th_Edition", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Symbian^3.
/// </summary>
internal static string SIS_Platform_UID_Symbian_3 {
get {
return ResourceManager.GetString("SIS_Platform_UID_Symbian_3", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to SymbianOS 3 or later. /// Looks up a localized string similar to SymbianOS 3 or later.
/// </summary> /// </summary>

View File

@@ -70,7 +70,7 @@
<value>Ficheros para todos los idiomas:</value> <value>Ficheros para todos los idiomas:</value>
</data> </data>
<data name="Required_UID_0_version_1_2" xml:space="preserve"> <data name="Required_UID_0_version_1_2" xml:space="preserve">
<value>Requerida UID {0} versión {1}.{2}</value> <value>Requerida {0} versión {1}.{2}</value>
</data> </data>
<data name="Required_variant_0" xml:space="preserve"> <data name="Required_variant_0" xml:space="preserve">
<value>Variante requerida: {0}</value> <value>Variante requerida: {0}</value>
@@ -81,4 +81,43 @@
<data name="Requisite_for_language_0_1" xml:space="preserve"> <data name="Requisite_for_language_0_1" xml:space="preserve">
<value>Requisito para el idioma {0}: {1}</value> <value>Requisito para el idioma {0}: {1}</value>
</data> </data>
<data name="SIS_Platform_UID_Nokia_Belle" xml:space="preserve">
<value>Nokia Belle</value>
</data>
<data name="SIS_Platform_UID_Series_60_1st_Edition" xml:space="preserve">
<value>Series 60 1ª Edición</value>
</data>
<data name="SIS_Platform_UID_Series_60_1st_Edition_Feature_Pack_1" xml:space="preserve">
<value>Series 60 1ª Edición, Feature Pack 1</value>
</data>
<data name="SIS_Platform_UID_Series_60_2nd_Edition" xml:space="preserve">
<value>Series 60 2ª Edición</value>
</data>
<data name="SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_1" xml:space="preserve">
<value>Series 60 2ª Edición, Feature Pack 1</value>
</data>
<data name="SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_2" xml:space="preserve">
<value>Series 60 2ª Edición, Feature Pack 2</value>
</data>
<data name="SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_3" xml:space="preserve">
<value>Series 60 2ª Edición, Feature Pack 3</value>
</data>
<data name="SIS_Platform_UID_Series_60_3rd_Edition" xml:space="preserve">
<value>Series 60 3ª Edición</value>
</data>
<data name="SIS_Platform_UID_Series_60_3rd_Edition_Feature_Pack_1" xml:space="preserve">
<value>Series 60 3ª Edición, Feature Pack 1</value>
</data>
<data name="SIS_Platform_UID_Series_60_3rd_Edition_Feature_Pack_2" xml:space="preserve">
<value>Series 60 3ª Edición, Feature Pack 2</value>
</data>
<data name="SIS_Platform_UID_Series_60_5th_Edition" xml:space="preserve">
<value>Series 60 5ª Edición</value>
</data>
<data name="SIS_Platform_UID_Symbian_3" xml:space="preserve">
<value>Symbian^3</value>
</data>
<data name="SIS_Platform_UID_0" xml:space="preserve">
<value>UID 0x{0:X8}</value>
</data>
</root> </root>

View File

@@ -81,7 +81,7 @@
<value>Requisite #{0}:</value> <value>Requisite #{0}:</value>
</data> </data>
<data name="Required_UID_0_version_1_2" xml:space="preserve"> <data name="Required_UID_0_version_1_2" xml:space="preserve">
<value>Required UID {0} version {1}.{2}</value> <value>Required {0} version {1}.{2}</value>
</data> </data>
<data name="Required_variant_0" xml:space="preserve"> <data name="Required_variant_0" xml:space="preserve">
<value>Required variant: {0}</value> <value>Required variant: {0}</value>
@@ -89,4 +89,43 @@
<data name="Requisite_for_language_0_1" xml:space="preserve"> <data name="Requisite_for_language_0_1" xml:space="preserve">
<value>Requisite for language {0}: {1}</value> <value>Requisite for language {0}: {1}</value>
</data> </data>
<data name="SIS_Platform_UID_Series_60_1st_Edition" xml:space="preserve">
<value>Series 60 1st Edition</value>
</data>
<data name="SIS_Platform_UID_Series_60_1st_Edition_Feature_Pack_1" xml:space="preserve">
<value>Series 60 1st Edition, Feature Pack 1</value>
</data>
<data name="SIS_Platform_UID_Series_60_2nd_Edition" xml:space="preserve">
<value>Series 60 2nd Edition</value>
</data>
<data name="SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_1" xml:space="preserve">
<value>Series 60 2nd Edition, Feature Pack 1</value>
</data>
<data name="SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_2" xml:space="preserve">
<value>Series 60 2nd Edition, Feature Pack 2</value>
</data>
<data name="SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_3" xml:space="preserve">
<value>Series 60 2nd Edition, Feature Pack 3</value>
</data>
<data name="SIS_Platform_UID_Series_60_3rd_Edition" xml:space="preserve">
<value>Series 60 3rd Edition</value>
</data>
<data name="SIS_Platform_UID_Series_60_3rd_Edition_Feature_Pack_1" xml:space="preserve">
<value>Series 60 3rd Edition, Feature Pack 1</value>
</data>
<data name="SIS_Platform_UID_Series_60_3rd_Edition_Feature_Pack_2" xml:space="preserve">
<value>Series 60 3rd Edition, Feature Pack 2</value>
</data>
<data name="SIS_Platform_UID_Series_60_5th_Edition" xml:space="preserve">
<value>Series 60 5th Edition</value>
</data>
<data name="SIS_Platform_UID_Symbian_3" xml:space="preserve">
<value>Symbian^3</value>
</data>
<data name="SIS_Platform_UID_Nokia_Belle" xml:space="preserve">
<value>Nokia Belle</value>
</data>
<data name="SIS_Platform_UID_0" xml:space="preserve">
<value>UID 0x{0:X8}</value>
</data>
</root> </root>

View File

@@ -259,8 +259,9 @@ public sealed partial class Symbian
requisiteRecord.namesPointers = MemoryMarshal.Cast<byte, uint>(span)[..languages.Count].ToArray(); requisiteRecord.namesPointers = MemoryMarshal.Cast<byte, uint>(span)[..languages.Count].ToArray();
description.AppendFormat(Localization.Requisite_0, r).AppendLine(); description.AppendFormat(Localization.Requisite_0, r).AppendLine();
description.AppendFormat("\t" + Localization.Required_UID_0_version_1_2, requisiteRecord.uid, description.AppendFormat("\t" + Localization.Required_UID_0_version_1_2,
requisiteRecord.majorVersion, requisiteRecord.minorVersion). DecodePlatformUid(requisiteRecord.uid), requisiteRecord.majorVersion,
requisiteRecord.minorVersion).
AppendLine(); AppendLine();
description.AppendFormat("\t" + Localization.Required_variant_0, requisiteRecord.variant).AppendLine(); description.AppendFormat("\t" + Localization.Required_variant_0, requisiteRecord.variant).AppendLine();

View File

@@ -0,0 +1,54 @@
// /***************************************************************************
// Aaru Data Preservation Suite
// ----------------------------------------------------------------------------
//
// Filename : Symbian.cs
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : Symbian plugin.
//
// --[ Description ] ----------------------------------------------------------
//
// Identifies Symbian installer (.sis) packages and shows information.
//
// --[ License ] --------------------------------------------------------------
//
// This library is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of the
// License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
// Copyright © 2011-2023 Natalia Portillo
// ****************************************************************************/
namespace Aaru.Archives;
public sealed partial class Symbian
{
static string DecodePlatformUid(uint uid) =>
uid switch
{
0x101F6F88 => Localization.SIS_Platform_UID_Series_60_1st_Edition,
0x101F8202 => Localization.SIS_Platform_UID_Series_60_1st_Edition_Feature_Pack_1,
0x101F7960 => Localization.SIS_Platform_UID_Series_60_2nd_Edition,
0x101F9115 => Localization.SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_1,
0x10200BAB => Localization.SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_2,
0x102032BD => Localization.SIS_Platform_UID_Series_60_2nd_Edition_Feature_Pack_3,
0x101F7961 => Localization.SIS_Platform_UID_Series_60_3rd_Edition,
0x102032BE => Localization.SIS_Platform_UID_Series_60_3rd_Edition_Feature_Pack_1,
0x102752AE => Localization.SIS_Platform_UID_Series_60_3rd_Edition_Feature_Pack_2,
0x1028315F => Localization.SIS_Platform_UID_Series_60_5th_Edition,
0x20022E6D => Localization.SIS_Platform_UID_Symbian_3,
0x2003A678 => Localization.SIS_Platform_UID_Nokia_Belle,
_ => string.Format(Localization.SIS_Platform_UID_0, uid)
};
}