@ -32,6 +32,19 @@ struct UserData {
} ;
} ;
static_assert ( sizeof ( UserData ) = = 0x80 , " UserData structure has incorrect size " ) ;
static_assert ( sizeof ( UserData ) = = 0x80 , " UserData structure has incorrect size " ) ;
// Smallest JPEG https://github.com/mathiasbynens/small/blob/master/jpeg.jpg
// used as a backup should the one on disk not exist
constexpr u32 backup_jpeg_size = 107 ;
constexpr std : : array < u8 , backup_jpeg_size > backup_jpeg { {
0xff , 0xd8 , 0xff , 0xdb , 0x00 , 0x43 , 0x00 , 0x03 , 0x02 , 0x02 , 0x02 , 0x02 , 0x02 , 0x03 , 0x02 , 0x02 ,
0x02 , 0x03 , 0x03 , 0x03 , 0x03 , 0x04 , 0x06 , 0x04 , 0x04 , 0x04 , 0x04 , 0x04 , 0x08 , 0x06 , 0x06 , 0x05 ,
0x06 , 0x09 , 0x08 , 0x0a , 0x0a , 0x09 , 0x08 , 0x09 , 0x09 , 0x0a , 0x0c , 0x0f , 0x0c , 0x0a , 0x0b , 0x0e ,
0x0b , 0x09 , 0x09 , 0x0d , 0x11 , 0x0d , 0x0e , 0x0f , 0x10 , 0x10 , 0x11 , 0x10 , 0x0a , 0x0c , 0x12 , 0x13 ,
0x12 , 0x10 , 0x13 , 0x0f , 0x10 , 0x10 , 0x10 , 0xff , 0xc9 , 0x00 , 0x0b , 0x08 , 0x00 , 0x01 , 0x00 , 0x01 ,
0x01 , 0x01 , 0x11 , 0x00 , 0xff , 0xcc , 0x00 , 0x06 , 0x00 , 0x10 , 0x10 , 0x05 , 0xff , 0xda , 0x00 , 0x08 ,
0x01 , 0x01 , 0x00 , 0x00 , 0x3f , 0x00 , 0xd2 , 0xcf , 0x20 , 0xff , 0xd9 ,
} } ;
static std : : string GetImagePath ( UUID uuid ) {
static std : : string GetImagePath ( UUID uuid ) {
return FileUtil : : GetUserPath ( FileUtil : : UserPath : : NANDDir ) +
return FileUtil : : GetUserPath ( FileUtil : : UserPath : : NANDDir ) +
" /system/save/8000000000000010/su/avators/ " + uuid . FormatSwitch ( ) + " .jpg " ;
" /system/save/8000000000000010/su/avators/ " + uuid . FormatSwitch ( ) + " .jpg " ;
@ -89,19 +102,6 @@ private:
void LoadImage ( Kernel : : HLERequestContext & ctx ) {
void LoadImage ( Kernel : : HLERequestContext & ctx ) {
LOG_DEBUG ( Service_ACC , " called " ) ;
LOG_DEBUG ( Service_ACC , " called " ) ;
// smallest jpeg https://github.com/mathiasbynens/small/blob/master/jpeg.jpg
// used as a backup should the one on disk not exist
constexpr u32 backup_jpeg_size = 107 ;
static constexpr std : : array < u8 , backup_jpeg_size > backup_jpeg {
0xff , 0xd8 , 0xff , 0xdb , 0x00 , 0x43 , 0x00 , 0x03 , 0x02 , 0x02 , 0x02 , 0x02 , 0x02 , 0x03 ,
0x02 , 0x02 , 0x02 , 0x03 , 0x03 , 0x03 , 0x03 , 0x04 , 0x06 , 0x04 , 0x04 , 0x04 , 0x04 , 0x04 ,
0x08 , 0x06 , 0x06 , 0x05 , 0x06 , 0x09 , 0x08 , 0x0a , 0x0a , 0x09 , 0x08 , 0x09 , 0x09 , 0x0a ,
0x0c , 0x0f , 0x0c , 0x0a , 0x0b , 0x0e , 0x0b , 0x09 , 0x09 , 0x0d , 0x11 , 0x0d , 0x0e , 0x0f ,
0x10 , 0x10 , 0x11 , 0x10 , 0x0a , 0x0c , 0x12 , 0x13 , 0x12 , 0x10 , 0x13 , 0x0f , 0x10 , 0x10 ,
0x10 , 0xff , 0xc9 , 0x00 , 0x0b , 0x08 , 0x00 , 0x01 , 0x00 , 0x01 , 0x01 , 0x01 , 0x11 , 0x00 ,
0xff , 0xcc , 0x00 , 0x06 , 0x00 , 0x10 , 0x10 , 0x05 , 0xff , 0xda , 0x00 , 0x08 , 0x01 , 0x01 ,
0x00 , 0x00 , 0x3f , 0x00 , 0xd2 , 0xcf , 0x20 , 0xff , 0xd9 ,
} ;
IPC : : ResponseBuilder rb { ctx , 3 } ;
IPC : : ResponseBuilder rb { ctx , 3 } ;
rb . Push ( RESULT_SUCCESS ) ;
rb . Push ( RESULT_SUCCESS ) ;
@ -125,7 +125,6 @@ private:
void GetImageSize ( Kernel : : HLERequestContext & ctx ) {
void GetImageSize ( Kernel : : HLERequestContext & ctx ) {
LOG_DEBUG ( Service_ACC , " called " ) ;
LOG_DEBUG ( Service_ACC , " called " ) ;
constexpr u32 backup_jpeg_size = 107 ;
IPC : : ResponseBuilder rb { ctx , 3 } ;
IPC : : ResponseBuilder rb { ctx , 3 } ;
rb . Push ( RESULT_SUCCESS ) ;
rb . Push ( RESULT_SUCCESS ) ;