Wolvan / Homebr3w

A Homebrew browser for 3ds
MIT License
50 stars 8 forks source link

Adding to the Blacklist In-App or otherwise #21

Closed rtngtom closed 7 years ago

rtngtom commented 7 years ago

So, I ran into a small problem when I was checking for homebrew updates today. I saw a new app show up as unknown version, as if I had installed it through FBI or some other source. I looked up the app, in this case a fork of InputProc, and deciding that I never intended to install it, decided to uninstall it. The problem is this fork of InputProc shares a TitleID with an official 3ds game, Persona Q, so when I uninstalled this phantom app, I actually uninstalled all my Persona Q data.

So now I'm wondering how to blacklist this app and maybe every other official TID I have currently to prevent this issue from appearing again.

Wolvan commented 7 years ago

Which fork is it, exactly. @ksanislo do you think you can unlist it?

ksanislo commented 7 years ago

Oh, I think I beat you to this one already, it was the one that had the id of 0004000000123400.

I'm working on having the rewrite try to alert people who add entries with conflicting IDs, but even that can only go so far. I'd recommend a warning splash in Homebr3w before allowing someone to uninstall an app if it wasn't what installed them.

Wolvan commented 7 years ago

I added the warning as you suggested. If any other ideas come up, I'd like to know

ksanislo commented 7 years ago

I don't know if this is possible through lua, but there should be a way to get the name of an installed title by the TID, and compare that against the name of the app in the database. If they're different throw a giant warning that it doesn't seem like a straight upgrade or uninstall. You don't want it banned outright in case someone has renamed their project and it's intentional, but it would stop the accidental removal of the wrong things. That's better than trying to block them on the server side, since official releases may come out with a new TID that was already used by home-brew, and there's no way to avoid that.