Tools:
https://github.com/patrickfav/uber-apk-signer
https://github.com/iBotPeaches/Apktool
How:
apktool d app-release.apk -o extracted_apk| private class HttpInterceptor implements Interceptor { | |
| @Override | |
| public Response intercept(Chain chain) throws IOException { | |
| Request request = chain.request(); | |
| //Build new request | |
| Request.Builder builder = request.newBuilder(); | |
| builder.header("Accept", "application/json"); //if necessary, say to consume JSON | |
Tools:
https://github.com/patrickfav/uber-apk-signer
https://github.com/iBotPeaches/Apktool
How:
apktool d app-release.apk -o extracted_apk| import java.io.File | |
| import java.util.regex.Pattern | |
| import kotlin.system.exitProcess | |
| fun findMatches(directory: File, pattern: Pattern, extensions: List<String>): Set<String> { | |
| val result = mutableSetOf<String>() | |
| directory.walkTopDown() | |
| .filter { it.isFile && it.extension in extensions } |
These rules are adopted from the AngularJS commit conventions.
| #!/bin/bash | |
| adb wait-for-device | |
| A=$(adb shell getprop sys.boot_completed | tr -d '\r') | |
| while [ "$A" != "1" ]; do | |
| sleep 2 | |
| A=$(adb shell getprop sys.boot_completed | tr -d '\r') | |
| done |
| /*jshint node:true*/ | |
| var fs = require('fs'), | |
| http = require('http'), | |
| path = require('path'), | |
| port = 1338, | |
| dir = '.'; | |
| http.createServer(function (request, response) { | |
| var filePath = path.join(dir, path.basename(request.url)); | |
| if (path.extname(request.url) !== '.mp4' || !fs.existsSync(filePath)) return throw404(); |
| apply plugin: 'maven-publish' | |
| // https://developer.android.google.cn/studio/build/maven-publish-plugin | |
| // Because the components are created only during the afterEvaluate phase, you must | |
| // configure your publications using the afterEvaluate() lifecycle method. | |
| afterEvaluate { | |
| publishing { | |
| publications { |
| fun printCallerContextInfo(cb: () -> String, levelDepth : Int = 7) { | |
| if (!BuildConfig.DEBUG) | |
| return | |
| val stackTrace = Thread.currentThread().stackTrace | |
| var i = 0 | |
| val builder = StringBuilder() | |
| builder.append("${cb.invoke()} : ") | |
| for (ste in stackTrace) { | |
| i++ |
| import android.util.Log; | |
| import java.io.IOException; | |
| import java.lang.reflect.Method; | |
| import java.net.Socket; | |
| import java.util.ArrayList; | |
| import java.util.List; | |
| import javax.net.ssl.SSLContext; | |
| import javax.net.ssl.SSLSocket; |
| // Copyright 2017, the Flutter project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| import 'dart:async'; | |
| import 'package:meta/meta.dart'; | |
| import 'package:flutter/material.dart'; | |
| import 'package:flutter/rendering.dart'; | |
| /// A widget that ensures it is always visible when focused. |