duangsues.is_a? SaltedFish
60 subscribers
609 photos
6 videos
91 files
562 links
🌶🐔🐟 duangsuse 的日常
尤其喜欢发些奇奇怪怪的东西
和转载别人的东西
Download Telegram
Forwarded from dnaugsuz
可是虽说“理论上”是这样,真正实现这个东西的也就是“脚本语言”了(但我也不喜欢它们的另一些特质),说得到做不到的事情多了。
Forwarded from Yuze Wu | 女子高中生 | 喵!
然后Adapter就写了个这
duangsues.is_a? SaltedFish
然后Adapter就写了个这
enum Mode { NORMAL, DELETE } //< 有必要?

public class ModListAdapter extends BaseDynmaicGridAdapter {
private Mode mode = NORMAL;
public ModeListDynamicGridViewAdapter(Context ctx) { super(ctx, new ArrayList<>(), 1); }
@Override
public View getView(int position, View view_convert, Group parent) {
ModViewHolder holder;
if (view_covert != null) { holder = (ModViewHolder) view_convert.getView();
else {
View convertView = LayoutInflater.from(getContext()).inflate(R.layout.mod_item, null); //TODO: use overloads
holder = new ModViewHolder(contentView);
convertView.setTag(holder); //TODO extract (new ViewHolder) + View.setTag
}
view_convert/*merge...*/.setOnTouchListener((v, event) -> {
if (mode == Mode.REMOVE && (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) { // TODO: extract getAction()&ACTION_MAST
TextView tvTitle = v.findViewById(R.id.mod_item_title);
Switch enable = v.findViewById(R.id.mod_item_enabled);
GoodmodEntry entry = (GoodmodEntry) getItem(position);
boolean toRemove = !entry.isToRemove();
entry.setToRemove(toRemove);
tvTitle.setTextColor(toRemove? Color.RED : enable.isEnabled()? Color.BLACK : Color.GRAY);
return true;
} else return false;
});
holder.build((GoodmodEntry) getItem(position));
return view_convert;
}
}
Forwarded from fiepi
Forwarded from dnaugsuz
草,如此模板化的代码你都不用 IDEA 功能抽提的么
fun boilerplate(menuId: Int, navControllerId: Int) {
navigation.menu.clear()
menuInflater.inflate(menuId, navigation.menu)
navController.graph = navController.navInflater.inflate(navControllerId)
}

when (booru?.type) {
Booru.SANKAKU -> boilerplate(R.menu.navigation_sankaku, R.navigation.main_navigation_sankaku)
Booru.GEL -> boilerplate(R.menu.navigation_gel, R.navigation.main_navigation_gel)
null -> boilerplate(R.menu.navigation, R.navigation.main_navigation)
}
Forwarded from Unicream
(回到主题)有没有更好的存法呢
Forwarded from dnaugsuz
如果你是想实现客户端“可信计算”,可能木有了。

如果你的模块解耦足够好(加密存储是抽象的,接口和普通存储没有任何区别),那么你可以延续现有的操作
否则我建议直接削掉

上面也说了,有 root 直接读内存甚至 call 你自己的 JNI exports (甚至没存符号表的 C/++ 函数都能给你找出来),
无 root Xposed 都可以 hook 拿到你解密出的数据
计算设备是别人的,理论就没有绝对的安全,所以要么放服务器要么不放
Forwarded from dnaugsuz
🤔 三级缓存?我只知道 LRU 缓存
缓存不是一级已经够了吗…… 难不成你写一个 repeat(10) { println() } 还用递归来着
Forwarded from dnaugsuz
举个例子,某回合塔防游戏把一局的“金钱”数存在 JNI 里并且只有进行加减法时解密。
但这个游戏还是被 dalao 破解了,教程也很容易看——因为加密算法是 consistent,一致也即同输入一定同输出的,所以先弄到教程指定的“金钱”,然后再拿修改器搜内存,两次确定,锁一下数值就可以直接给破解了。
Forwarded from ag
三级缓存 概念 (本地,内存,网络)啊
Forwarded from dnaugsuz
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from dnaugsuz
奇怪的知识增加了
我只知道会用内存缓存(这个对应用开发者理应是透明的)
和本地文件缓存
Forwarded from ag
Forwarded from ag
这是我学习的笔记
Forwarded from ag
你搞他 他还会自毁,会自己乱码
Forwarded from ag
我新手 见到老神奇了
Forwarded from ag
你要改它smali代码
Forwarded from ag
必须要签名呢