Giter Club home page Giter Club logo

raccoon4's People

Contributors

basilgello avatar dejan2609 avatar di72nn avatar giorgosioak avatar jpstotz avatar onyxbits avatar paulo-raca avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

raccoon4's Issues

[Feature request] organised permissions list

On F-droid when we want to install any app, we can see the required permissions are organized into some categories (storage, Android system, corporal sensors, Camera, SMS, Phone, Location, Contacts, Calendar, ...) and permissions are explained: "Enable bluetooth" and "sync with bluetooth devices" instead of "android.permission.BLUETOOTH" and "android.permission.BLUETOOTH_ADMIN". I find this incredibly helpful and intuitive.

Thank you so much for your hard work!!

APK Modification

List suggestions here on how Raccoon could modify APK files (think: Exposed framework, just without installing xposed).

Add post download actions

Hook up a new dialog "Actions" to the "Market" menu that allows the user to configure post download actions:

  • After updating apps: delete all versions|delete old versions, but keep previous|keep all old versions
  • Run a script on the download (e.g. to copy the APKs into an F-Droid repository).
  • Automatically push to the current device via ADB (kinda dangerous? App might end up on the wrong device, user might not have reviewed permissions,..)

Simplify/Improve the App Manager Dialog

  • Put the total number of apps showing in the titlestrip's subtitle
  • Put the number of selected apps in the titlestrip's subtitle
  • Put the total filesize of the selected apps into the titlestrip's subtitle
  • Remove the "Filter" panel from the sidebar and put it above the app list.
  • Add a (De-)Select All Button.

No more CLI?

I've been using Raccoon v3 from the CLI and I'm surprised to see there's no CLI in the new version. Are there any plans for it?

BTW, I'm a huge fan!

Thanks

No search results for certain GSF IDs

Hi, unfortunately I'm not able to search for apps at certain GSF IDs. The IDs were generated by DummyDroid. When I set up a new account with a random ID, app search works perfectly, but I have to use the correct ID as my phone is giving me parsing errors for some apps.
With the IDs from DummyDroid there are always "no results", no matter what I'm looking for, in raccoon.
I'm using Windows 7, raccoon-4.1.4.exe, Samsung Galaxy N7100.
Thanks, I really appreciate your work and of course I have purchased a code :)

"No profile to connect with." in CLI

The CLI doesn't seem to have a very good documentation, so I don't understand how to login. Can you please help me out?

Also I've bought a premium key but haven't received it yet. I don't know if the process should be automated or not.

Chronik

Add a log to the Transfermanager

Compatibility: add a way to import an entire Raccoon v3 archive

There should be a File|Convert menuitem (someone please suggest a better name and a tooltip text). That only shows if an old Raccoon v3 installation is detected in Raccoon's homedir.

Function: All apps (of all archives) found in the old installation should be piped through the GPlay Transfermanager (or a derivate of it) and automatically be linked to the current GPlay profile.

Discussion:

  • Only Raccoon v3 users should see that option as it only applies to them. No need to confuse no users.
  • Ignore the old config files, in particular the profile settings (account, GSF ID). Just dump everything we can find into the currrent Raccoon v4 profile. Trying to add a UI for fine control is not worth the effort. A user who wants to to sort things into different profiles can use a filemanager.
  • Do NOT delete OR modify the contents of old archives! The user can do that with a filemanager AFTER ensuring that the old files are no longer needed.

How did you came across for EncryptedPasswd in login params ?

Hi @onyxbits
I found about 3 changes in API login code base comparing to akdeniz's API :

  1. Replacing Passwd with EncryptedPasswd (which require new encrypted value)
  2. Changing sdk_version to 17 (seems to be year!)
  3. Removing client_sig params
  4. Adding new params add_account

I was wonder if you could help us on how did you figured these out ?
How could we change this private API (akdeniz's API) if necessary ?
Is there any source or related link you think it will help us to find the right http post format?

I know, you spend lost of time to find out what should be change for new login procedure BUT i'll appreciate it if you at least tell us how to find workaround for future issues.
Regards.

Fix for Raccoon Can Search for, but not Download Certain Apps

I am not sure if this is the right fix, or if Patrick will decide to do something different, but the problem of not being able to download certain apps from Play Store using Raccoon dates back for me all the way to 4.0 when I started using it. I've been able to reproduce and fix the problem on my Raccoon with no other impact.

https://youtu.be/mN5naAPk-GE

java -cp raccoon.jar org.hsqldb.util.DatabaseManagerSwing --url jdbc:hsqldb:file:raccoondb_4

ALTER TABLE PUBLIC.PERMISSIONS ALTER COLUMN NAME VARCHAR(1000)
ALTER TABLE PUBLIC.ANDROIDAPPS ALTER COLUMN NAME VARCHAR(1000)

This 100% fixed my downloading/importing problem. I batch imported over 200 apk's without issue or a hicup.

Example app of causing issue: Samsung Browser Beta (com.sec.android.app.sbrowser.beta)

Couldn't download or Import before the fix.

DESCRIBE_TABLES_AFTER.txt

[DESCRIBE_TABLES_BEFORE.txt]
(https://github.com/onyxbits/raccoon4/files/1348473/DESCRIBE_TABLES_BEFORE.txt)

DESCRIBE_TABLES_sqlext.txt

raccoondb_4_BEFORE.scriptext.txt

raccoondb_4_AFTER.scriptext.txt

HTTP/CLI API to download APK

There is options like gpa-search , --gpa-details to get list of package, but no option to download the package in CLI.

Is there any way to download the APK using the CLI or using the HTTP APIs?

Potential Race Condition in the "My Apps" browser?

The "My apps" browser won't always refresh when deleting or downloading apps. This is probably due to a race condition in AndroidAppDao (calling fireOnDatasetChangeEvent() too early. It should be called after disconnecting from the database).

How should I get this to work with a Fairphone 2?

I have a stock Fairphone 2 running the latest OS (18.02, with Google services). I'm trying to use Raccoon in the "Mimic an existing device" mode, which requires the "GSF ID" and "User Agent" values. I first tried to use droidentify, but I can't find these values anywhere in the output. I then proceeded to use the Device ID app, which does display the "GSF ID".

I then set up Raccoon with the "GSF ID" and a random string for the "User Agent". However after doing so, I can't seem to find any apps with Raccoon.

P.S. I can't use the "Register a new pseudo device" option, as that creates a new phone located in the US, which prevents me from downloading apps made exclusively for Europe.

More app details

The app details dialog should show additional info:

  • min sdk version
  • size
  • last update

It should also allow for relinking an app to a different profile. The dialog should probably be completely redesigned to only contain the tilestrip and a tab host (on the nimbus theme, a tab host looks awkward if it doesnt span the entire window).

Systematically got the DF-DFERH-01 error

I've read your blog post about it [1] and reset my profile several time, but systematically the error come back.

I use Racoon only to download one paid app (I pay for it) because my phone do not have the play store (fairphone open AOSP).

This morning I try to update it, saw your warning about racoon 3 being deprecated. Thus I download the new version, and follow the steps to import an existing app. But nothing seems to work. In fact I see my imported app in the app manager, but I cannot find any other app (the search feature return 0 results, whatever I look for).

BTW, I use my main google account (but use it only for that…), which is protected by 2FA. During the configuration steps of racoon I disable 2FA, and enable it back as soon as I get the home view of racoon. Could this bug be linked with 2FA and app-specific password ?

I foolishly follow your tip in [1] and delete the Racoon 3 data file, thus I'm now stuck with a non-working racoon and no idea how to update my paid app :(

(Re)set the owning profile of an app

Use case: Currently the owning profile is set automatically when an app is downloaded from Play. The user has no means to change (or even view) it. The owning profile is used when checking for updates. It would be desireable to unlink a profile from an app (to stop it from being updated) or link it to another profile (e.g. after the apk has been imported from the filesystem and should now be put under version control).

The functionality for this should go into the "app details" dialog.

feature request: search apps by entering "package names", display more info in search results

  • It will be great to search for an app by entering its package name (e.g. com.google.android.apps.translate), because unlike apps names, the package names are unique. and searching by app name always lists many apps which might not be related to the app searched for.
  • When searching for apps, display more info, especially minimum Android version (SDK version) (useful when using a generic device profile which might list an app with different minimum SDK requirements), also app package name / also let choose different views in search results (such as Details, List) if possible.

The java API (crawler) will work in future or not ?

Hi and thanks for great client.
From the point that you're using this java api and in my issue on that api page

Android Cloud to Device Messaging (C2DM) is deprecated. The C2DM service will be shut down completely on 10/20/2015. Currently, C2DM accepts no new users, and grants no new quotas

Will this API working in future ?
Does google plan to remove Client login ?

Regards

Figure out how to hook up Raccoon with a webbrowser

Firefox has this "Open With" Addon (https://addons.mozilla.org/en-US/firefox/addon/open-with/). Would be nice to have a

--gpa-open

Commandline parameter to hand over a market page from browser to Raccoon.

ToDo:

  1. Modify the gplay package and add an option to show an app by packagename wihtout first searching for it.
  2. Due to the file locks on the database we can't run multiple Raccoon instances simultanously. There needs to be a mechanism to check if Raccoon is already running and, if so, to pass a task to the running instance.

Signed releases

Hi,
Thanks for your work on this great project.
I'm just putting in a request for signed GitHub releases, so downloads can be verified.
I've found an easy guide.
Signed releases in combination with the GitHub JSON API could be the beginnings of a simple update system.

Empty database crash in DatabaseManager.java:139

I got this when starting Racoon for a very first time with no database by clicking "View" and selecting "My Apps"

Looks like we shouldn't try to set autocommit then no connection has not been obtained in
DatabaseManager.java:139

2018-01-02 16:01:49.281:INFO:oejs.Server:jetty-8.y.z-SNAPSHOT
2018-01-02 16:01:49.349:INFO:oejs.AbstractConnector:Started [email protected]:20579
java.lang.NullPointerException
	at de.onyxbits.raccoon.db.DatabaseManager.get(DatabaseManager.java:139)
	at de.onyxbits.raccoon.appmgr.MyAppsViewBuilder.assemble(MyAppsViewBuilder.java:197)
	at de.onyxbits.weave.swing.AbstractPanelBuilder.build(AbstractPanelBuilder.java:56)
	at de.onyxbits.weave.swing.WindowBuilder.build(WindowBuilder.java:196)

Focus query box

Automatically regain focus on the search query box when returning to the window from another dialog.

Rewrite the appmgr package

Currently it's a mess of references and callbacks between the classes that make up the app manager dialog. There should be a DepotManager in the globals to centralize call routing.

Some downloads result in DF-BPA-33 error

The majority of apps that I've tried downloading seem to work OK, but some seem to not work any time that they're attempted to be downloaded. In the console is the error:

Error retrieving information from server. [DF-BPA-33]

A search of this error pulls up pretty much nothing except for https://www.quora.com/Do-you-know-what-is-the-df-bpa-33-error-on-Google-play-store , which suggests a time synchronization problem. Why this is only happening for certain apps is beyond me.

An example app with this problem is:
https://play.google.com/store/apps/details?id=com.hutchgames.hotwheels

FIXME: Listening for DB changes.

For some strange reason, EntityListeners are are registered on the DatabaseManager, not the DataAccessObject.

Figure out why it was designed that way and change it before this becomes any more awkward.

Device|Bloat B' Gone

Add a means to effortlessly disable bloatware via ADB:

  • Must differentiate between Gapps and Vendor bloat (some users might want to get rid of both, others only of the later).
  • Needs an option to undo the cahnge ... we can probalby just query the list of disabled system apps and renable them all. No need to keep track of everything.
  • What exactly is bloatware? I don't want to hardcode packagenames, so we probably need to download a list that can be checked against what's backed into the ROM.
  • Is Chrome and Facebook bloat? Strictly spoken: yes. But some users might want to keep either. So the UI probably needs to be a Treeview with the three top level nodes "Google", "Vendor", "Arguable"

Describe building in the Readme

The .jars built with ./gradlew -Pversion=4.0.1 assemble do not start (no main manifest attribute, in Raccoon-desktop-4.0.1.jar), although the versions published on your website do. Specify that -Pversion=something is needed, and that the build itself should be done with launch4j tasks instead of the standard ones. (Those were fairly confusing 20 minutes :P)

Provide as native Android app?

Hi,

might it be possible to provide this application also as native Android app?
This could improve the installation and updating process of additional apps.
And you are able to fetch device specific information (user agent, GSF ID) by reading them directly from the device.

Are there some special reasons why this application has been developed for desktop only?

Duplicate search results

Hi and thanks for this application!

When using a search string with multiple terms (e.g. "Bike Citizens"), the results contains duplicates.

I'd be happy to take a look myself, but didn't yet figure out how to get it running from my IDE (IntelliJ). It recognizes several gradle tasks (e.g. build), but none for running.

Device|Identify

Telling users to use DummyDroid to bypass compatibility restrictions is a pain. So DummyDroid should probably merge into Raccoon. There should be a dialog to identify a device via ADB and upload that profile into the current account.

Specify group/owner when importing apps

Use case: Importing apps is usually a batch operation and the apps in question usually have something in common (e.g. bought as a bundle or belong to a specific device). Currently, you have to group apps from the app browser after importing, which is tedious. The import dialogs should offer the option to do this automatically.

BadAuthentication Error

After entering my account credentials and setting Raccoon up as a new device I am getting the error Error=BadAuthentication
Sometimes I am also getting a message that two-factor authentication may be enabled directly after entering the credentials, which is not true in my case.
I even tried to create a new Google Account but it had the same error.

Here is the full log:
2017-06-03 17:50:18.267:INFO:oejs.Server:jetty-8.y.z-SNAPSHOT 2017-06-03 17:50:18.366:INFO:oejs.AbstractConnector:Started [email protected]:36435 com.akdeniz.googleplaycrawler.GooglePlayException: Error=BadAuthentication at com.akdeniz.googleplaycrawler.GooglePlayAPI.executeHttpRequest(GooglePlayAPI.java:585) at com.akdeniz.googleplaycrawler.GooglePlayAPI.executePost(GooglePlayAPI.java:543) at com.akdeniz.googleplaycrawler.GooglePlayAPI.executePost(GooglePlayAPI.java:522) at com.akdeniz.googleplaycrawler.GooglePlayAPI.loginAC2DM(GooglePlayAPI.java:182) at com.akdeniz.googleplaycrawler.GooglePlayAPI.checkin(GooglePlayAPI.java:165) at de.onyxbits.raccoon.setup.UploadLogic.onDoInBackground(UploadLogic.java:89) at de.onyxbits.raccoon.setup.WizardWorker.doInBackground(WizardWorker.java:36) at javax.swing.SwingWorker$1.call(SwingWorker.java:295) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at javax.swing.SwingWorker.run(SwingWorker.java:334) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

I am running Antergos Linux with JDK & JRE 8 installed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.