{"id":110721,"date":"2023-10-10T15:10:19","date_gmt":"2023-10-10T13:10:19","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android"},"modified":"2023-10-10T15:10:19","modified_gmt":"2023-10-10T13:10:19","slug":"google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hr\/blog\/news\/google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android","title":{"rendered":"Google je prepisao firmware pvmfm na jeziku Rust, koji se koristi u Androidu","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>U sklopu radova na ja\u010danju sigurnosti kriti\u010dno va\u017enih softverskih komponenti Android platforme, Google je prepisao firmware pvmfm na Rust jeziku, koji se koristi za organizaciju rada virtualnih ma\u0161ina pokrenutih hipervizorom pVM unutar Android Virtualization Framework-a. Prija\u0161nji firmware bio je napisan u C jeziku i implementiran preko U-Boot bootloadera, u \u010dijem je kodu prethodno otkriveno vi\u0161e ranjivosti uzrokovanih problemima s memorijom.     <\/p>\n<p>Prepisani firmware na Rust jeziku uklju\u010den je u Android 14, a univerzalne biblioteke koje su nastale tokom razvoja firmware-a oblikovane su kao crate-paketi i predane Rust zajednici. Na primjer, objavljen je paket smccc za podr\u0161ku ARM su\u010deljima PSCI (Power State Coordination Interface) i pozivima SMCCC (SMC Calling Convention), te paket aarch64-paging za manipulaciju tablicama stranica memorije. Tako\u0111er je obavljen rad na ispravljanju gre\u0161aka i pro\u0161irenju funkcionalnosti postoje\u0107eg paketa virtio-drivers s implementacijom VirtIO drajvera. Osim Android platforme, navedeni paketi kori\u0161teni su u projektu Oak, koji razvija komponente za prijenos, pohranjivanje i obradu podataka u za\u0161ti\u0107enim okru\u017eenjima (TEE, Trusted Execution Environment).        <\/p>\n<p>Hipervizor pVM preuzima kontrolu u ranoj fazi pokretanja i osigurava potpunu izolaciju memorije <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/hr\/vps\/\"   title=\"virtualnih ma\u0161ina\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2070\">virtualnih ma\u0161ina<\/a> i host-okru\u017eenja, sprje\u010davaju\u0107i pristup za\u0161ti\u0107enim virtualnim ma\u0161inama iz host-sustava, u kojima se obra\u0111uju povjerljivi podaci. Firmware pvmfm (Protected Virtual Machine Firmware) preuzima kontrolu odmah nakon pokretanja virtualne ma\u0161ine, provodi provjeru stvorene okoline i donosi odluku o hitnom prekidu pokretanja u slu\u010daju otkrivanja gre\u0161aka u integritetu ili generira boot certifikat za gostuju\u0107i sustav u slu\u010daju potvrde lanca povjerenja.            <\/p>\n<p>Programiranje na jeziku Rust omogu\u0107uje jednostavnije i sigurnije pridr\u017eavanje \u201epravila dva\u201d, koje primjenjuje Google za odr\u017eavanje sigurnosti sistemskih komponenti Androida. Prema ovom pravilu, svaki dodani kod mo\u017ee podlijegati najvi\u0161e dva od tri uvjeta: rad s nepouzdanom ulaznom informacijom, kori\u0161tenje nesigurnog programskog jezika (C\/C++) i izvr\u0161avanje s povi\u0161enim privilegijama. Iz ovog pravila proizlazi da kod za obradu vanjskih podataka mora biti ili smanjen na minimalne privilegije (izoliran) ili napisan na sigurnom programskom jeziku. Prema statistikama Googlea, oko 70% svih opasnih ranjivosti otkrivenih u Androidu je uzrokovano gre\u0161kama u radu s memorijom.     <\/p>\n<p>Rust je fokusiran na sigurnu obradu memorije i smanjuje rizik od pojave ranjivosti uzrokovanih problemima kao \u0161to su pristupanje memoriji nakon njezinog osloba\u0111anja i prekora\u010denje granica bafera. Sigurna obrada memorije osigurava se u Rustu tijekom kompilacije putem provjere referenci, pra\u0107enja vlasni\u0161tva objekata i uzimanja u obzir vremena \u017eivota objekata (oblasti vidljivosti), kao i putem procjene ispravnosti pristupa memoriji tijekom izvr\u0161enja koda. Rust tako\u0111er pru\u017ea sredstva za za\u0161titu od preljeva cijelih brojeva, zahtijeva obaveznu inicijalizaciju varijablnih vrijednosti prije kori\u0161tenja, bolje obra\u0111uje pogre\u0161ke u standardnoj biblioteci, primjenjuje koncept nepromjenjivosti (immutable) referenci i varijabli po defaultu, te nudi jaku stati\u010dku tipizaciju za minimiziranje logi\u010dkih gre\u0161aka.    <\/p>\n<p>Me\u0111u te\u0161ko\u0107ama koje se javljaju u procesu razvoja niskorazinskih komponenti na Rust jeziku, poput drajvera, spominje se potreba za radom s golim pokaziva\u010dima u unsafe modu, budu\u0107i da je Rust osmi\u0161ljen s obzirom na kori\u0161tenje memorije koja je dodijeljena programu, a u kodu koji radi bez slojeva iznad hardvera, potrebno je pristupati dijeljenoj memoriji i MMIO. Trenutno mogu\u0107nosti Rusta za rad s golim pokaziva\u010dima ostavljaju mnogo da se \u017eeli, ali situacija bi se trebala promijeniti nakon stabilizacije podr\u0161ke za makroe offset_of, slice_ptr_get i slice_ptr_len.       <\/p>\n<p>Me\u0111u nedostacima se isti\u010de potreba za pobolj\u0161anim sintaksom za pristup poljima struktura i indeksima nizova putem golih pokaziva\u010da bez kreiranja referenci, kao i ograni\u010denja u stvaranju sigurnih obloga oko unsafe operacija koje mogu uzrokovati nepredvidivo pona\u0161anje i koje ne mo\u017ee proveriti kompajler. Na primer, takve obloge nije mogu\u0107e stvoriti za operacije sa stranicama memorije, jer mapiranje stranica u jednom delu programa mo\u017ee uticati na druge delove.     <\/p>\n<p>\u0160to se ti\u010de veli\u010dine rezultantnog koda, stari firmware pVM zauzimao je 220 kB, dok novi iznosi 460 kB, ali su u prepisanu verziju dodane nove mogu\u0107nosti, zbog kojih su isklju\u010deni neki drugi komponenti koji su se koristili pri pokretanju. Na kraju, ukupna veli\u010dina svih starih i novih pokreta\u010dkih komponenti bila je usporediva. Isti\u010de se da kada je veli\u010dina va\u017enija od performansi, usporedive rezultate s jezikom C mogu se posti\u0107i uklju\u010divanjem dodatnih na\u010dina optimizacije veli\u010dine u kompilatoru, odbacivanjem suvi\u0161nih ovisnosti i ne kori\u0161tenjem alata za formatiranje nizova.    <\/p>\n<p>Dodatno se pominje nastavak rada na implementaciji mogu\u0107nosti pokretanja aplikacija napisanim na jeziku Rust koje zaslu\u017euju poverenje (Trusted Application) u operativnom sistemu Trusty, koji pru\u017ea TEE okru\u017eenje (Trusted Execution Environment) za Android, izvr\u0161avaju\u0107i se paralelno sa Androidom na istom procesoru u odvojenom izolovanom okru\u017eenju. Trusty se koristi na ure\u0111ajima Pixel i ve\u0107 koristi Rust u bibliotekama i sistemskim komponentama (jezgro ostaje na C-u).<br \/>\n<br \/>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=59900\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 pvmfm, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0445 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440\u043e\u043c pVM \u0438\u0437 \u0441\u043e\u0441\u0442\u0430\u0432\u0430 Android Virtualization Framework. \u0420\u0430\u043d\u0435\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u0432\u0435\u0440\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 U-Boot, \u0432 \u043a\u043e\u0434\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u043d\u0435\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u043f\u0440\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-110721","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 pvmfm, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hr\/blog\/news\/google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Google \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 pvmfm, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0432 Android | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 pvmfm, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hr\/blog\/news\/google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-10-10T13:10:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-10-10T13:10:19+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Google je prepisao firmver pvmfm na jeziku Rust, koji se koristi u Androidu | ProHoster","description":"U okviru rada na ja\u010danju sigurnosti kriti\u010dno va\u017enih softverskih komponenti platforme Android, kompanija Google je prepisala firmver pvmfm na jeziku Rust, koji se koristi za organizaciju rada virtuelnih ma\u0161ina.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/news\/google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Google \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 pvmfm, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0432 Android | ProHoster","og:description":"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 pvmfm, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d.","og:url":"https:\/\/prohoster.info\/hr\/blog\/news\/google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2023-10-10T13:10:19+00:00","article:modified_time":"2023-10-10T13:10:19+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"110721","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-02-09 17:11:16","updated":"2026-02-09 17:11:16","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/110721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=110721"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/110721\/revisions"}],"predecessor-version":[{"id":159314,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/110721\/revisions\/159314"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=110721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=110721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=110721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}