Heroes III HD v1.1.6版本的 MD5 值为:99ed52e2d6b85487933b8dc8c0440b36

以下内容为反编译后的 H3DownloaderService.java 源代码,内容仅作参考


package com.dotemu.homm3.downloader;

import com.google.android.vending.expansion.downloader.impl.DownloaderService;
import obfuse.NPStringFog;
public class H3DownloaderService extends DownloaderService {
    private static final String BASE64_PUBLIC_KEY_DOTEMU = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhvmtJf32Cno+slqRKByttBA7EorE0YZ3i9Q2t/O+lGi4zuTFBquc3gg7Qkzc8vlp6E4CyMYtVB3VVA8djchxAt1JQFqB/GYOgiVFWlIOnqszavy4iAIVpXBd2pYgpXLkvbCSevm/Q2NwV8LIpjfUu/juw6FbR9qHfyTci07R5+6/XD7zHmeOgbQMlJDQZ+DrHGxfiOh0U1RGPmsSeid8qVxEHwdL/VYt4p1wVL4JHeNPrk8/zVTfkr94UdtBNdfvseWE+LO5kejmeNZLNmJTdRHCJSfnjiAVKMBh1agltwW/ppFmGZ2Z/BymMs6c8lWpea9cdEyWoCOFjde73XUJHQIDAQAB";
    private static final String BASE64_PUBLIC_KEY_UBISOFT = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAulLOTZPwLi1Bbzgx70QYaeCxtCRDZN28rdAajxWbPPmPCSBByP45PS1iNtkP5PpW2AbOCqf39UKoxFpM5/g6xfvqs2/eMrtxoIDS7ya71iL3f87t8neCxjxHfr8LvjKrbEu40KROdy74tJ8NNTGTcCnAdXRXWJRe7FYmeB9QqGUbr73ZsdbjnK9k42Go55iker95J1g5aLejHBkRNGswNWvx1hir/7UEnU3tM9z99wgef4S1Nn7M8qLOQus3hhtlNMWlq3Y3ySRuvBc8ZjkuvjjO2YO2JByUMHHUa+FoqONG6MPwxiSbX7WJ9h6p/VawA53zo4ijRw2Kmd4uRXjSbwIDAQAB";
    private static final byte[] SALT = {1, 43, -12, -1, 54, 98, -50, -12, 43, 2, -8, -44, 9, 5, -106, -102, -33, 45, -1, 84};

    @Override
    public String getPublicKey() {
        String packageName = getPackageName();
        return NPStringFog.decode("0D1F004F1B030E161D0804430C07060F1113001400000908044B1A0B0202041D080E0C").equals(packageName) ? NPStringFog.decode("23392423270B262B30091B1C090508205C055E322C302B2726243D2D313C592F2C2E2C302D1726222F30222407023C2235343110291B5F320F1B0919505523371108221615243736343E5F591C0526041816270F313E0C3726212C3214315A54373643073E190A3E543715255C310F2E2D1001564B3B3B021928112A505D09461507181014575D0B3D1F15160E2E212159090C565F082B5614564719590004241D1816380B13562D110F391C1228145A512C373D0A095A551A2B5F2B3C3A3739022D0F26012A3C283A2B3C0450232B03152F583F102030101C475E3B1D05050F1C254906555C26085047071B081357542D54155B1121040429250E2020371E162036111D4306191F4E5934220B275D04205814585E12150B1659325F2F09523F5601212E3F1414561A0604012F23360B1441374314323C14112711562A070A1B170D0F3D5C29225324231E303F26383800452708143D20375B2C3E161F0C210C285A3624580F530241260C162F54541F1D5A19073319532C08165A053F39043205123B2A313C202C") : NPStringFog.decode("23392423270B262B30091B1C090508205C055E322C302B2726243D2D313C592F2C2E2C302D1726222F3022241A181D192B085255261C015B1E0D1F332C270B1A042F2059240817375E2937520758365706413F460D2908531F073A362F101B025402155921061B0D5911090258355922172C3E11242C433B372F59030F1106082C155F2B3623032C5F2A3821060E3334391C242E0010141F13180959082F2831152A2C145F113706173D3E05060F223D0411085D3F42231638592B2C0204163814410B12124428123F581F29011C260D195D563C544C535D36345A1B260C022A150C21200D2425363F592A02252616070E2A1A5E255C3329310A16210B1909591F371F203A1914214E38381351025F073B2D5A2B2F003C3E020659411B313114050254553B0513273C0A161B120B36224E3E21450604040C022B28223E002B3A05352D3124230B0F0408263339233205500F060B1105395F1D11280C203F40345F2F18032C145311561C3A110B005E06162B093A0E2D2E210F160B475E393B2B2F343B2A313C202C");
    }

    @Override
    public byte[] getSALT() {
        return SALT;
    }

    @Override
    public String getAlarmReceiverClassName() {
        return H3AlarmReceiver.class.getName();
    }
}