analysis: full official-app reverse artifacts (jadx sources, ghidra libcxsdk decomp, authoritative protocol conclusions) + docs

This commit is contained in:
ZXCLI
2026-09-10 02:51:37 +08:00
parent 623d62b641
commit 4ba98f62cd
68 changed files with 69493 additions and 5 deletions
@@ -0,0 +1,72 @@
package cn.com.magnity.magnitycx.sdk;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.graphics.Point;
import android.media.ThumbnailUtils;
/* loaded from: classes.dex */
public class BitmapUtilities {
public static Bitmap getBitmapThumbnail(String pathName, int width, int height) {
Bitmap bitmap = null;
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true;
BitmapFactory.decodeFile(pathName, opts);
if (opts.outWidth > 0 && opts.outHeight > 0) {
float r = Math.max(opts.outHeight / height, opts.outWidth / width);
opts.inSampleSize = (int) (r + 0.5d);
opts.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeFile(pathName, opts);
}
if (bitmap == null) {
return ThumbnailUtils.createVideoThumbnail(pathName, 1);
}
return bitmap;
}
public static Bitmap getBitmapThumbnail(String pathName, int sampleSize) {
Bitmap bitmap = null;
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true;
BitmapFactory.decodeFile(pathName, opts);
if (opts.outWidth > 0 && opts.outHeight > 0) {
opts.inSampleSize = sampleSize;
opts.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeFile(pathName, opts);
}
if (bitmap == null) {
return ThumbnailUtils.createVideoThumbnail(pathName, 1);
}
return bitmap;
}
public static Point getBitmapSize(String pathName) {
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true;
BitmapFactory.decodeFile(pathName, opts);
if (opts.outWidth <= 0 || opts.outHeight <= 0) {
return null;
}
return new Point(opts.outWidth, opts.outHeight);
}
public static Bitmap getBitmapThumbnail(Bitmap bmp, int width, int height) {
Bitmap bitmap;
if (bmp == null) {
return null;
}
int bmpWidth = bmp.getWidth();
int bmpHeight = bmp.getHeight();
if (width > 0 && height > 0) {
Matrix matrix = new Matrix();
float scaleWidth = width / bmpWidth;
float scaleHeight = height / bmpHeight;
matrix.postScale(scaleWidth, scaleHeight);
bitmap = Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true);
} else {
bitmap = bmp;
}
return bitmap;
}
}