0%

【Flag】Android中间件模块-使用反编译注入自定义代码

根据Android反编译技术,
将不同代码以及功能,批量注入到目标软件中,
批量生成附带不同功能(定制功能)的各自的安装包

呃。。回过头看发现废话有点多,若只想了解方案实现请直接 跳转至方案

引言

  在刚进入互联网行业时,进了一家小型运营公司,公司主要业务是将开发者或开发公司开发完成的Android软件分发到各个渠道牟利。 我当时负责公司Android部分的全部工作内容,好不容易掌握技术原理,将编程之外的所有工作脚本化, 准备开始享受工作,可因为公司运营几次决策失误,导致资方撤资,公司被迫关闭运营。
  虽然公司没了,但这个解决方案还是很有趣的,方案具体实现开发者只需接入一次我方Sdk,我方就可以生产所有已接入我方渠道渠道的渠道包,将任何渠道的代码功能注入到开发者的Android包中,真正意义上实现一次接入批量生产。故以写此文章分享给大家。


概述

三者的关系

软件开发者或开发公司统称为开发方,我方公司统称为中间方,分发渠道统称为渠道方

  • 软件内容完全由开发方提供,中间方提供接入包(Sdk)供开发方接入中间方
  • 软件的运营由开发者与中间方共同进行,中间方确定新运营需求,开发者实现运营需求
  • 宣发等内容完全由渠道方进行,用户支付由渠道方进行

至此我们可以大致总结:开发方开发软件,交给中间方运营,中间方将软件分发给渠道,渠道下发给用户下载使用

大致需求

由三方关系我们可以得出对产品得出以下大致需求:

  • 开发方接入我方Sdk需要简便快捷,中间方Sdk不影响原有软件功能
  • 中间方接入新渠道简单
  • 中间方完全控制渠道方软件的关键功能(例如支付等)
  • 中间方可批量化注入渠道代码生成渠道包
  • 中间方统计关键部分所有数据以便跟双方交接

大致描述需求:
  因为中间方不实现软件内容,只负责提供开发者接入的Sdk开发,故我们需要供开发者接入的SDK以及此SDK的网页后台。开发方接入中间方Sdk也需要简单易操作。 因为中间方需要避免某方毁约行为,所以需要SDK具备控制关键内容的能力。
中间方使用已接入的软件包作为母包批量生成渠道使用的包渠道包需要快速便捷。


方案

项目关系分析

这里整个png一下代码数据传输的关系

数据流分析

正在整理

SDK方案

正在整理

实现

android中间方SDK

正在整理

Web中间方SDK后台

正在整理

渠道SDK接入工程

正在整理

生成渠道SDK打包工程

正在整理