public void exportPackageListToFile(OutputStream os, Runnable onSuccess, Consumer<Throwable> onError) {
        XLog.d("exportPackageListToFile");
        disposables.add(Single.create((SingleOnSubscribe<Boolean>) emitter -> {
            InputStream in = CharSource.wrap(getExportPackageListContent()).asByteSource(Charset.defaultCharset()).openStream();
            ByteStreams.copy(in, os);
            emitter.onSuccess(true);
            IoUtils.closeQuietly(in);
            IoUtils.closeQuietly(os);
        }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(res -> onSuccess.run(), onError::accept));
    }
Null means we load all pkgs
android/app/src/main/java/now/fortuitous/thanos/power/SmartFreezeAppsViewModel.java