/* * Tencent is pleased to support the open source community by making Tinker available. * * Copyright (C) 2016 THL A29 Limited, a Tencent company. All rights reserved. * * Licensed under the BSD 3-Clause License (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * * https://opensource.org/licenses/BSD-3-Clause * * Unless required by applicable law or agreed to in writing, software distributed under the License is * distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. */ package com.tencent.tinker.loader.shareutil; import java.util.ArrayList; /** * patch via bsdiff * Created by zhangshaowen on 16/3/16. */ public class ShareBsDiffPatchInfo { public String name; public String md5; public String rawCrc; public String patchMd5; public String path; public ShareBsDiffPatchInfo(String name, String md5, String path, String raw, String patch) { // TODO Auto-generated constructor stub this.name = name; this.md5 = md5; this.rawCrc = raw; this.patchMd5 = patch; this.path = path; } public static void parseDiffPatchInfo(String meta, ArrayList<ShareBsDiffPatchInfo> diffList) { if (meta == null || meta.length() == 0) { return; } String[] lines = meta.split("\n"); for (final String line : lines) { if (line == null || line.length() <= 0) { continue; } final String[] kv = line.split(",", 5); if (kv == null || kv.length < 5) { continue; } // key final String name = kv[0].trim(); final String path = kv[1].trim(); final String md5 = kv[2].trim(); final String rawCrc = kv[3].trim(); final String patchMd5 = kv[4].trim(); ShareBsDiffPatchInfo dexInfo = new ShareBsDiffPatchInfo(name, md5, path, rawCrc, patchMd5); diffList.add(dexInfo); } } public static boolean checkDiffPatchInfo(ShareBsDiffPatchInfo info) { if (info == null) { return false; } String name = info.name; String md5 = info.md5; if (name == null || name.length() <= 0 || md5 == null || md5.length() != ShareConstants.MD5_LENGTH) { return false; } return true; } @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append(name); sb.append(","); sb.append(path); sb.append(","); sb.append(md5); sb.append(","); sb.append(rawCrc); sb.append(","); sb.append(patchMd5); return sb.toString(); } }