Rootless OSX El Capitain ?

Danieli68

Membre confirmé
21 Juin 2013
15
0
Bonjour,

J'ai réalisé plein d'icônes perso, que j'ai l'habitude d'utiliser pour mon dock, mais depuis que j'ai installé la GM impossible de changer les icônes des applications du système même (je ne parle pas de celles téléchargées sur l'appStore). Je voudrais par exemple modifier l'icône terminal mais y a pas moyen. J'ai donc tapé ça (comme vu sur d'autres discussions):

sudo nvram boot-args="kext-dev-mode=1 rootless=0"

Mais ça ne marche pas. Quelqu'un a-t-il un autre moyen ?
(PS: je precise que comme ça na pas marché j'ai repassé rootless=1, c'est bien ce qu'il fallait faire ?)
Merci pour votre aide,
 
Salut Dianeli.

Je vole à ton secours
430685_original.gif
dans un domaine où les décideurs d'Apple concernant l'OS en développement «El Capitan 10.11» ont pratiqué une valse-hésitation digne de politiciens cherchant à garder l'adhésion du peuple tout en le roulant dans la farine...
361608_original.png


⚫︎ Dans les premières bêta d'«El Capitan», en effet, une application graphique était disponible dans le menu : Utilitaires de la partition de récupération «Recovery HD», nommée : «Configuration de Sécurité» et offrant une case, cochée par défaut, mais décochable optionnellement, intitulée : "Enforce System Integrity Protection" (= Imposer la Protection d'Intégrité du Système). Décocher la case, ce qui forçait un re-démarrage, permettait de neutraliser le protocole du SIP qui inscrit en NVRAM un argument de boot restrictif que le Programme Interne du Mac (l'EFI) charge au démarrage, pour le passer, via le boot_loader : boot.efi au kernel --> en conséquence, une fois l'argument chargé par le kernel, l'attribut étendu (extended_attribute) "rootless" se trouve associé par le processus de déploiement de l'OS (launchd) à toute une arborescence critique de dossiers/fichiers système qui interdit leur modification une fois l'OS déployé, même en passant en droits root (dans le Finder ou en ligne de commande dans le «Terminal»).

⚫︎ Dans les dernières bêta d'«El Capitan», par contre, cette application graphique avait été supprimée des menus de la «Recovery HD» pour être transférée à l'intérieur du répertoire CoreServices de la Bibliothèque-Système (/System/Library) de l'OS, sous l'intitulé de : «SecurityConfiguration.app». Le même type de panneau s'affichait au lancement, proposant une case : "Enforce System Integrity Protection" cochée par défaut mais décochable et impliquant un re-démarrage. Je me figure qu'un décideur "doué de raison", avisant que la 1ère méthode n'impliquait pas moins de 2 redémarrages (un => «Recovery HD» ; une autre => «Macintosh HD») pour neutraliser le SIP (et 2 autres pour le rétablir
413669_original.gif
), avait dû proposer une "action directe" depuis la session ouverte de l'utilisateur, ce qui n'impliquait pour chaque action (neutraliser / rétablir) qu'un seul redémarrage...

⚫︎ Dans la GM toute fraîche d'«El Capitan», toute espèce d'application graphique a disparu, aussi bien des CoreServices de l'OS (2è état des choses), que du menu Utilitaires de la «Recovery HD» (1ère mouture). L'utilisateur est-il donc réduit à passer dans le «Terminal» de sa session une commande :

Bloc de code:
sudo nvram boot-args="kext-dev-mode=1 rootless=0"
comme tu l'as fait (ce qui invoque en droits root le programme nvram capable de manipuler les arguments de boot de la mémoire NVRAM de la Carte-Mère avec la spécification boot-args = arguments de boot et les 2 options : kext-dev-mode=1 --> licence de démarrer en mode développeur pour pouvoir faire charger des extensions du noyau expérimentales et non signées Apple sans subir les foudres du protocole du kext_signing datant de «Yosemite» + rootless=0 --> associer l'argument rootless à une valeur 0 de nullité) ?

☞ Le 1er argument ne se défendait que tant que le TRIM ne pouvait être activé sur des SSD de tierce-partie qu'après modification d'une extension native Apple et qu'il fallait donc désactiver le kext_signing pour ne pas planter l'OS au démarrage. C'était la solution adoptée par «Trim Enabler» (aux risques et périls de l'utilisateur qui faisait un reset_NVRAM par exemple). Mais, depuis qu'Apple a créé une extension spéciale permettant d'activer le TRIM sur les SSD de tierce-partie et activable via la commande : sudo trimforce enable (extension activable sous «El Capitan» comme à partir de «Yosemite 10.10.4»), plus rien ne justifie le maintien en NVRAM d'un argument de boot : kext-dev-mode=1 si l'on n'est pas un développeur d'extensions (à moins de vouloir continuer de courir le risque de plantage de l'OS
459250_original.gif
).

☞ Reste l'argument de boot : rootless=0 --> comme tu t'en es aperçu, alors même que cet argument est inscrit dans la NVRAM de la Carte-Mère de ton Mac (par exemple si tu passes la commande informative : sudo nvram boot-args), cela n'empêche pas le SIP d'exercer son emprise verrouillant l'état des fichiers-Système une fois l'OS déployé. Sur ce point, je n'ai pour l'heure qu'une conjecture à t'offrir : l'argument de boot rootless=0 n'a l'air de neutraliser le protocole du SIP que sur un sous-ensemble restreint des fichiers-Système ciblés ou regardant une modalité d'emprise seulement de l'attribut étendu rootless distribué par le processus launchd à l'arborescence critique des fichiers-Système de l'OS.​

⚫︎ Que faire alors ? Alors, il te faut impérativement démarrer sur ta partition de récupération «Recovery HD 10.11» et aller au menu Utilitaires de la barre supérieure des menus, pour lancer le «Terminal» (où l'invite de commande -bash-3.2# te signale que tu es en droits root). Il te faut invoquer le programme csrutil (qui manipule exclusivement le protocole intégral du SIP mais n'est pas invocable depuis l'OS démarré - seulement depuis la partition de récupétion démarrée) et tu as le panel suivant de commandes possibles :

Bloc de code:
csrutil status
csrutil clean
csrutil disable
csrutil enable

--> csrutil status te renvoie la notification de l'état actuel du SIP (enabled vs disabled) sur le système de fichiers de l'OS sans re-démarrage. Toutes les autres commandes impliquent un re-démarrage automatique :

csrutil clean --> remet la NVRAM au défaut en réactivant le SIP.

csrutil disable
--> neutralise intégralement le SIP en NVRAM et réautorise une manipulation root des fichiers-Système de l'OS (sans toucher les autres boot-args en place).

csrutil enable --> réactive le SIP en NVRAM et interdit la manipulation root des fichiers-Système de l'OS (sans toucher les autres boot-args en place).​
 
Dernière édition par un modérateur:
  • J’aime
Réactions: Geekfou
Salut Dianeli.

Je vole à ton secours
430685_original.gif
dans un domaine où les décideurs d'Apple concernant l'OS en développement «El Capitan 10.11» ont pratiqué une valse-hésitation digne de politiciens cherchant à garder l'adhésion du peuple tout en le roulant dans la farine...
361608_original.png


⚫︎ Dans les premières bêta d'«El Capitan», en effet, une application graphique était disponible dans le menu : Utilitaires de la partition de récupération «Recovery HD», nommée : «Configuration de Sécurité» et offrant une case, cochée par défaut, mais décochable optionnellement, intitulée : "Enforce System Integrity Protection" (= Imposer la Protection d'Intégrité du Système). Décocher la case, ce qui forçait un re-démarrage, permettait de neutraliser le protocole du SIP qui inscrit en NVRAM un argument de boot restrictif que le Programme Interne du Mac (l'EFI) charge au démarrage, pour le passer, via le boot_loader : boot.efi au kernel --> en conséquence, une fois l'argument chargé par le kernel, l'attribut étendu (extended_attribute) "rootless" se trouve associé par le processus de déploiement de l'OS (launchd) à toute une arborescence critique de dossiers/fichiers système qui interdit leur modification une fois l'OS déployé, même en passant en droits root (dans le Finder ou en ligne de commande dans le «Terminal»).

⚫︎ Dans les dernières bêta d'«El Capitan», par contre, cette application graphique avait été supprimée des menus de la «Recovery HD» pour être transférée à l'intérieur du répertoire CoreServices de la Bibliothèque-Système (/System/Library) de l'OS, sous l'intitulé de : «SecurityConfiguration.app». Le même type de panneau s'affichait au lancement, proposant une case : "Enforce System Integrity Protection" cochée par défaut mais décochable et impliquant un re-démarrage. Je me figure qu'un décideur "doué de raison", avisant que la 1ère méthode n'impliquait pas moins de 2 redémarrages (un => «Recovery HD» ; une autre => «Macintosh HD») pour neutraliser le SIP (et 2 autres pour le rétablir
413669_original.gif
), avait dû proposer une "action directe" depuis la session ouverte de l'utilisateur, ce qui n'impliquait pour chaque action (neutraliser / rétablir) qu'un seul redémarrage...

⚫︎ Dans la GM toute fraîche d'«El Capitan», toute espèce d'application graphique a disparu, aussi bien des CoreServices de l'OS (2è état des choses), que du menu Utilitaires de la «Recovery HD» (1ère mouture). L'utilisateur est-il donc réduit à passer dans le «Terminal» de sa session une commande :

Bloc de code:
sudo nvram boot-args="kext-dev-mode=1 rootless=0"
comme tu l'as fait (ce qui invoque en droits root le programme nvram capable de manipuler les arguments de boot de la mémoire NVRAM de la Carte-Mère avec la spécification boot-args = arguments de boot et les 2 options : kext-dev-mode=1 --> licence de démarrer en mode développeur pour pouvoir faire charger des extensions du noyau expérimentales et non signées Apple sans subir les foudres du protocole du kext_signing datant de «Yosemite» + rootless=0 --> associer l'argument rootless à une valeur 0 de nullité) ?

☞ Le 1er argument ne se défendait que tant que le TRIM ne pouvait être activé sur des SSD de tierce-partie qu'après modification d'une extension native Apple et qu'il fallait donc désactiver le kext_signing pour ne pas planter l'OS au démarrage. C'était la solution adoptée par «Trim Enabler» (aux risques et périls de l'utilisateur qui faisait un reset_NVRAM par exemple). Mais, depuis qu'Apple a créé une extension spéciale permettant d'activer le TRIM sur les SSD de tierce-partie et activable via la commande : sudo trimforce enable (extension activable sous «El Capitan» comme à partir de «Yosemite 10.10.4»), plus rien ne justifie le maintien en NVRAM d'un argument de boot : kext-dev-mode=1 si l'on n'est pas un développeur d'extensions (à moins de vouloir continuer de courir le risque de plantage de l'OS
459250_original.gif
).

☞ Reste l'argument de boot : rootless=0 --> comme tu t'en es aperçu, alors même que cet argument est inscrit dans la NVRAM de la Carte-Mère de ton Mac (par exemple si tu passes la commande informative : sudo nvram boot-args), cela n'empêche pas le SIP d'exercer son emprise verrouillant l'état des fichiers-Système une fois l'OS déployé. Sur ce point, je n'ai pour l'heure qu'une conjecture à t'offrir : l'argument de boot rootless=0 n'a l'air de neutraliser le protocole du SIP que sur un sous-ensemble restreint des fichiers-Système ciblés ou regardant une modalité d'emprise seulement de l'attribut étendu rootless distribué par le processus launchd à l'arborescence critique des fichiers-Système de l'OS.​

⚫︎ Que faire alors ? Alors, il te faut impérativement démarrer sur ta partition de récupération «Recovery HD 10.11» et aller au menu Utilitaires de la barre supérieure des menus, pour lancer le «Terminal» (où l'invite de commande -bash-3.2# te signale que tu es en droits root). Il te faut invoquer le programme csrutil (qui manipule exclusivement le protocole intégral du SIP mais n'est pas invocable depuis l'OS démarré - seulement depuis la partition de récupétion démarrée) et tu as le panel suivant de commandes possibles :

Bloc de code:
csrutil status
csrutil clean
csrutil disable
csrutil enable

--> csrutil status te renvoie la notification de l'état actuel du SIP (enabled vs disabled) sur le système de fichiers de l'OS sans re-démarrage. Toutes les autres commandes impliquent un re-démarrage automatique :

csrutil clean --> remet la NVRAM au défaut en réactivant le SIP.

csrutil disable
--> neutralise intégralement le SIP en NVRAM et réautorise une manipulation root des fichiers-Système de l'OS (sans toucher les autres boot-args en place).

csrutil enable --> réactive le SIP en NVRAM et interdit la manipulation root des fichiers-Système de l'OS (sans toucher les autres boot-args en place).​

Je vois que j'ai affaire à un expert. Merci infiniment, ta solution à parfaitement marché.
Penses tu qu'il est nécessaire que je repasse la config par défaut (à savoir le système de protection -> enable) ou je peux m'en passer ?
Encore merci pour ton aide
 
En ce qui me concerne, j'ai laissé le SIP désactivé sur ma partition expérimentale d'«El Capitan», et fais-moi confiance : une fois la version finale devenue mon OS principal, le SIP y sera toujours autant désactivé. J'expérimente beaucoup trop souvent sur les fichiers-Système pour m'amuser à redémarrer 2 fois pour désactiver le SIP, puis re-démarrer 2 fois encore pour le réactiver...
402655_original.gif
 
D'accord merci pour ta réponse,
Je m'amuse souvent à réaliser des icônes pour mes apps donc je pense que je vais faire de même. Mais quelles sont les risques encourus ? Pourquoi Apple a t'elle décidé de rajouter cette couche de sécurité ?
 
Pourquoi Apple a t'elle décidé de rajouter cette couche de sécurité ?

Argument exogène: Protéger OS X de la malveillance polymorphe qui va de pair avec le succès ? Tant que les utilisateurs de Macs n'était qu'une poignée de marginaux, s'attaquer à OS X n'intéressait personne. Le parc croissant des Macs (même si toujours minoritaires) fait entrer OS X dans le lot des systèmes "intéressants" à transgresser. Qui, il y a seulement 10 ans, aurait jamais été traquer aucune "faille de sécurité" dans le système OS X  comme s'acharnent aujourd'hui à le faire des "scrutateurs d'intégrité" professionnels ? - bref : la rançon du succès...

Argument endogène: Protéger l'utilisateur contre lui-même ? L'usage prédominant d'appareils de type iPhone n'induit certainement pas un accroissement de l'expertise logicielle, mais plutôt l'inverse. Ce profil massif d'utilisateur, connecté à un Système manipulable comme OS X, ne peut qu'induire à des décompensations naïves, genre : je benne à vue tout ce qui me déplaît. D'où la tendance à confiner la liberté de l'utilisateur dans l'espace du compte privé tout en verrouillant le Système derrière un mur d'enceinte...​

quels sont les risques encourus ?

Un mélange des deux facteurs évoqués - théoriquement parlant. Ce qui peut justifier la mise en place de protections accrues en cas d'enjeux professionnels de l'usage d'OS X, notamment. Dans un usage strictement individuel, peut-être y aura-t-il une diminution des plantages suscités par de joyeuses improvisations dans le Système (on le verra bien sur le forum OS X
361608_original.png
). Comme personnellement je privilégie cette capacité d'intervention, sans ressentir d'émoi sécuritaire par rapport au spectre diffus de la "menace-qui-vient-de-l'extérieur" (facile à contenir par une pincée de mesures classiques), je revendique mon choix de laisser abaissée la nouvelle herse des "défenses d'intégrité du Système".​
 
Dernière édition par un modérateur:
  • J’aime
Réactions: Sly54
Si j'ai bien lu — et j'ai du mal, ayant un mode multitâche plutôt encore de l'espèce coopérative, et étant pas mal sursollicité en ce moment au niveau attention, j'ai tendance à planter toutes les tâches en cours si j'ai un truc qui se met à tourner en boucle dans mon environnement.
Si j'ai bien lu, donc, il semble qu'on puisse imaginer qu'Apple est en train de rétablir subrepticement l'ancien système ne fonctionnant pas seulement en bloqué/débloqué, mais bloqué partiellement. Toujours si j'ai bien compris, je peux peut-être espérer débloquer avec ta commande à peu près ce qui était débloqué sous Yosemite sans me retrouver les fesses à l'air sur le réseau pour autant ?
Autre questionnement : puis-je espérer récupérer un fonctionnement normal d'Antidote et de VirtualBox /XP grâce à cette commande, toujours en bénéficiant du même niveau de sécurité qu'avant. Il semblerait que les fichiers incriminés ayant été déplacé, je risque de l'avoir profond dans l'OS de toute manière.