Du bist nicht angemeldet.

#1 28.03.2020 17:14:11

vfio_experte
Mitglied

wine_hardened_script.py python3.8 script

Hallo ich habe für euch einen neu Version von wine wine_hardened_script.py hochgeladen.

0.7k gui beta

protontricks  -c "python3.8 '../wine_hardened_script_gui.py' -Steam" APPID

gui startet und fragt euch

protontricks  -c "python3.8 '../wine_hardened_script_gui.py' -Steam_auto_protect" APPID

gui starte nicht und fragt euch nicht.

alle devices ausser c und z werden gelöscht.

z wird auf dem Steam Ordner beschränkt und so wird das ~ home Verzeichnis  geschützt vor unerlaubtem zugriff von Proton Spiel.

-Steam_auto_remove_protect

macht alle Veränderungen rückgängig. 

"-Steam" und "-Steam_auto_protect" und "-Steam_auto_remove_protect"

aktiviert den Proton Schutz ist für die meisten Spiele geeignet aber nicht für Software denn die müssen oft auf Z:/ zuzugreifen um Dateien abzuspeichern.


wine WINEPREFIX Schütz:

python3.8 '../wine_hardened_script_gui.py'

Bitte immer ohne -Steam* starten den sonst kann es sein das ihr ungewollt ein CDROM oder HDD Laufwerk blockiert.

#stabile  Version
https://github.com/vfioexperte/wine_hardened_script

#beta 0.8

https://github.com/vfioexperte/wine_har … /tree/beta
siehe in beta branch.

in der beta kann man gleich per PKGBUILD installieren. "makepkg -rsi"

protontricks wird benötigt um steam games zu härten.

"steam_security"

listet alle spiel auf von steam die mit Proton das erste mal angesteuert  wurden.

Dann einfach spiel wählen und auf die untere Buttons klicken.


Danke

Beitrag geändert von vfio_experte (01.04.2020 11:22:44)

Offline

#2 28.03.2020 19:49:51

Whitie
Mitglied

Re: wine_hardened_script.py python3.8 script

Hallo vfio_experte,
nur ein paar Anmerkungen zum Code:
- auf Modulebene sollten nur Klassen, Funktionen und Konstanten stehen
- Pfade setzt man nicht mit + zusammen, dafür gibt es os.path.join() oder seit Python 3.4 pathlib
- Funktionen sollten alles, was sie zum Arbeiten brauchen, als Argument übergeben bekommen (testet sich auch besser)
- Warum rufen sich die question...() Funktionen bei Falscheingabe rekursiv auf? Was muss man zum Abbrechen eingeben?
- device sollte besser devices heißen, noch besser DEVICES und gleich als Liste angelegt werden
- über DEVICES kann man dann auch wunderbar iterieren (for device in DEVICES) statt immer while True Schleifen zu nehmen
- os.system() sollte man schon länger nicht mehr benutzen, sondern das subprocess Modul. Allerdings gibt es zum Löschen Funktionen im os Modul (os.remove()), die hier ausreichen
- Dateien sollte man mit dem with - Statement öffnen, dann werden sie auch garantiert wieder geschlossen
- woher kommt ERROR (Zeile 187)?

Das war es erstmal. Ich würde es überarbeiten/neu schreiben. Gerne dann nochmal zum Draufschauen hier posten.

Gruß
Whitie

Beitrag geändert von Whitie (28.03.2020 19:50:24)

Offline

#3 01.04.2020 11:15:37

vfio_experte
Mitglied

Re: wine_hardened_script.py python3.8 script

Was nicht funktioniert ist:
os.path.join() bei WINPREFIX als Parameter
os.remove() bei links

#zu kompliziert
os.link(src, dst, *, src_dir_fd=None, dst_dir_fd=None, follow_symlinks=True)

Danke

Beitrag geändert von vfio_experte (01.04.2020 11:23:25)

Offline

#4 01.04.2020 18:54:18

Whitie
Mitglied

Re: wine_hardened_script.py python3.8 script

Hallo vfio_experte,
es ist länger geworden und hat ein GUI. Du hast aber nicht unbedingt die Änderungen/Verbesserungen eingebaut. Für die Kommandozeilenargumente solltest du dir mal das argparse Modul anschauen. Ansonsten hier mal zwei Beispiele:

## deine Funktion
home = "";
def read_WINEPREFIX():
    WINEPREFIX = "";
    if(debug_fodler != ""):
        WINEPREFIX = debug_fodler;
        os.system("mkdir -p \"" + debug_fodler + "/dosdevices" + "\"");
        return debug_fodler;
    try:
        WINEPREFIX = os.environ['WINEPREFIX'];
    except KeyError:
        home = os.environ['HOME'];
        WINEPREFIX = home + "/.wine";
    return WINEPREFIX;

## sollte so aussehen (noch besser mit pathlib):

def read_wineprefix(debug_folder=''):
    if debug_folder:
        os.makedirs(os.path.join(debug_folder, 'dosdevices'), exist_ok=True)
        return debug_folder
    try:
        return os.environ['WINEPREFIX']
    except KeyError:
        return os.path.join(os.path.expanduser('~'), '.wine')
self.block_device = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
self.DEVICES = self.block_device.split(",");

# so (oben natürlich noch string importieren):
self.devices = list(string.ascii_lowercase)

Gruß
Whitie

Offline

#5 09.04.2020 18:56:28

vfio_experte
Mitglied

Re: wine_hardened_script.py python3.8 script

Danke für die Verbesserung.
wie lösche ich eine systemlink mit python???
oder
wie erstelle ich einen systemlink mit python??
0.9b beta ist draußen.

Offline

#6 09.04.2020 19:21:43

Whitie
Mitglied

Re: wine_hardened_script.py python3.8 script

Symlink erzeugen: os.symlink
Symlink löschen os.unlink

Generell lesenswert: https://docs.python.org

Gruß

Offline

#7 12.04.2020 10:18:12

vfio_experte
Mitglied

Re: wine_hardened_script.py python3.8 script

Habe gerade die Tipss umgesetzt danke.

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums